聚類總結(上) 劃分聚類

2021-08-04 12:59:56 字數 2618 閱讀 6667

聚類指根據一定的準則,把乙份事物按照這個準則歸納成互不重合的幾份。機器學習中,聚類指按照乙個標準,這個標準通常是相似性,把樣本分成幾份,使得相似程度高的聚在一起,相似程度低的互相分開。

聚類的方法很多,有基於分層的聚類,基於劃分的聚類,基於密度的聚類。不同的方法有各自的特點,適用於不同分布的資料。有的適用於大資料集,能發現不同的任意形狀的資料。有的演算法簡單,適用於小量資料集。眾多方法中又有無監督學習,和半監督學習。

一組m * n 維資料,通過聚類分成5簇,每個樣本屬於哪個簇用one_hot編碼表示,可以看成樣本由n維降到了5維。可以把聚類看做一種降維的方法,用在資料處理階段。

用距離表示

衡量兩個向量間的相似程度,可以用兩個向量間的距離表示:距離近,則相似程度高,距離遠,則相似程度低。距離有不同的度量視角,不同視角的度量對應的距離可能不同,這便有可能在不同的距離角度把資料分類,不同的度量方法應用在不同的聚類方法之中:

用距離度量資料需先做均一化。

傑卡德相似度

如果樣本是從乙個集合中選取的,衡量各樣本的相似度,可以用傑卡德相似度。看兩個樣本有多少交集,交集多說明相似度高。實際中結合具體業務可能會給定不同特徵不同的權重值。

余弦相似度

樣本在空間中表示,除了用兩個樣本間距離去衡量相似性,還可以用它們向量間夾角大小來衡量,余弦相似度就是這樣的方法,範圍[-1, 1]。

如果把每個樣本看做乙個函式,求每個樣本的均值、方差,可以利用皮雅遜相關係數度量相關性,範圍[0, 1],1表示相關性極強:

不僅需要衡量資料間的相似性,還需要衡量聚類結束後得到的結果的好壞。即衡量各簇間的相似性,相似性越低,說明聚類的效果越好。

當已知標籤時, 衡量指標有ari,ami,均一性和完整性。ari和ami範圍[0, 1],數值越大說明聚類效果越好。

輪廓係數

當樣本標籤未知時,可以用輪廓係數度量聚類效果。

乙個簇內樣本,到簇內其他樣本的距離的平均值為ai,叫做簇內不相似度,ai越小,說明這個點和簇內其他樣本距離越近,聚類效果越好。乙個樣本到其他簇的距離按簇求平均值取最小的,稱為簇間不相似度,越大說明這個樣本越不屬於其他簇。定義輪廓係數是s(i)為:

s(i)越接近1,說明聚類效果越好。越接近-1說明聚類效果越差。等於0,說明樣本點在聚類邊界上。

k-means

k均值演算法:

1. 首先給定聚類中心,所有樣本求和聚類中心的歐氏距離,取數值小的作為當前距離並歸入那個中心點。

2. 計算歸入個中心的點的平均值作為新的聚類中心,再重複步驟1,直到達到規定迭代次數或閾值。

(步驟二如果資料分布不均勻,可以選擇中位數,就是k-mediods(k中值)演算法)

缺點是對初值敏感,初值的選擇對聚類的影響很大。

k-means++,對k-means的改進:

1. 首先隨機選擇乙個聚類中心點,計算其餘各樣本到這點的距離di。

2. 所有di求和得到總距離d,用di/d做概率,選擇第二個聚類中心點。

3. 再計算其餘各點到離自己最近聚類中心的距離,重複步驟2,知道得到指定中心數。

4. 重複k-means步驟。

假設各簇資料概率密度符合高斯分布,利用最大似然估計得到k-means的目標函式:

則如果資料滿足方差相同的高斯混合模型,k-means可以得到比較好的聚類效果。損失函式值隨指定簇數降低,選擇曲線拐點(elbow)處簇數做指定簇數。

層次聚類

層次聚類分自頂向下和自下而上兩種方法。自下而上是先認為每個樣本單獨一類,計算每個樣本間距離,把距離最小的合併成一類。然後重新計算各樣本距離,不斷聚類。

這裡的距離,一般用歐式距離。但在衡量兩個類間距離時,選擇參與計算的樣本時有不同的方法。

不同的資料選擇不同的衡量方法,不一定均值就更好。

當類間距離大於設定的閾值或達到設定簇數時,停止聚類。

層次聚類的優點是能發現樣本間的層級關係。

參考:

小象學院,鄒博《機器學習v》聚類

層次聚類:

密度聚類:

聚類之層次聚類 基於劃分的聚類(

目錄 一層次聚類 層次聚類的原理及分類 層次聚類的流程 層次聚類的優缺點 二劃分聚類法k means kmeans演算法的原理 k均值的優缺點及分類 k means與dbscan的區別 k means注意問題 三基於密度的聚類 dbscan的概念 簇的生成原理及過程 根據資料點的密度分為三類點 db...

聚類總結(中) 密度聚類

密度聚類是一種基於密度的聚類方法,基於密度的聚類方法的主要思想是尋找被低密度區域分離的高密度區域。密度度量 乙個點的區域性密度有不同的度量方式 1.畫個圈,數圈內其他點個數是一種方法。2.用圈內其他點和給點半徑的比值的高斯概率密度形式,對距離核心點距離近的給大權重。3.計算圈內距離最小的前n個點到核...

劃分聚類 Kmeans演算法

劃分聚類 聚類是針對一堆沒有類別屬性的物件的,它把這一大堆物件分成一些小堆,並保證小堆內的物件之間彼此相似,小堆之間的物件彼此不同。劃分聚類是聚類的一種,由它生成的小堆,小堆間沒有一樣的元素,大堆小堆之間關係和大集合與它的的分割一樣。kmeans演算法 設資料點 物件 的集合為 其中,xi 是實數空...