1. 程式人生 > >K-Means算法總結

K-Means算法總結

for 而是 中心 總結 inf 表示 算法 方法 .com

技術分享圖片

A、先確定k值,上圖中k2,隨機然後選取質心為P1,P2

B、分別計算其它各點到這兩個點的距離

C、選取距離近的點到相應的隊列,如點離P1近,就把該點歸到P1隊列,如點離P2近,即把該點歸到P2隊列

D、根據公式,技術分享圖片再取兩個隊列的虛擬質心,即兩個隊列中的所有點距離的平均值

E、再次選距離近的點到相應的隊列,並且重復上述D

F、經過N次的叠代,隊列不再變化,即表示算法收斂,聚類完成

二、用輪廓系數法驗證聚類效果

技術分享圖片 該值處於[-1,1]之間,值越大,聚類效果越好

aXi與同簇的其它樣本的平均距離,稱為凝聚度

bXi與最近簇中所有樣本的平均距離,稱為分離度

a越小,一個聚類的數據點越集中。

b越大,一個聚類和另一個聚類分得越開

三、Calinski-HarabaszCH系數):類別內部數據的協方差越小越好,類別之間的協方差越大越好,這樣Calinski-Harabasz分數s會高,分數s高則聚類效果越好

技術分享圖片

m為訓練集樣本數,k為類別數。Bk類別之間的協方差矩陳Wk為類別內部數據的協方差矩陳,tr為矩陳的跡

類間協方差tr(Bk)越大越好,類內部協方差tr(Wk)越小越好,m樣本數越多越好,k類別數越小越好,即各個簇的間距越大越好,各簇內部的數據越緊密越好,樣本數越多越好,即數據量越多越好,劃分的簇個數越少越好,

Wk為類別內部數據的協方差矩陣,tr為矩陳的跡,所以

tr(Wk)類別內部數據的協方差矩陣的跡

四、聚類分類:

硬聚類:即每一個數據只能被歸為一類,即每一個數據都會100%被確定

軟聚類:每一個樣本以一定的概率被分到某一類中

五、算法優化:

四種硬聚類優化算法(K-means++,二分K-MeansISODATAKernel K-means

1K-means++:中心思想為選取聚類中心不再采用隨機選取的方法,而是選取離當前質心越遠的那個點作為新的質心,(即選取的第一個質心和第二個質心越遠越好),離得越遠的點會有更大的概率被選成新的質心

2、ISODATA:類別數目會動態變化(無需深入學習),即類別數會隨機應變

3、Kernel K-means:將每個樣本進行投射到高維空間去處理,將處理後的數據用

K-means算法進行聚類

4、二分K-means首先將所有點作為一個簇,然後將該簇一分為二。之後選擇SSE最大的簇再劃分成兩個簇,如此循環下去,直到簇的數目等於用戶給定的數目K為止(可以加速算法的執行速度,不受初始化問題的影響,每一步都保證誤差最小)

六、誤差平方和公式

技術分享圖片

SSE(Sum of Squares for Error)稱作誤差的平方和作為度量聚類質量的目標函數,反映每個樣本各觀測值的離散狀況,又稱為組內平方和或殘差平方和。

SSE即為樣本的聚類誤差,代表聚類效果的好壞

K-Means算法總結