K-Means算法總結
A、先確定k值,上圖中k取2,隨機然後選取質心為P1,P2
B、分別計算其它各點到這兩個點的距離
C、選取距離近的點到相應的隊列,如點離P1近,就把該點歸到P1隊列,如點離P2近,即把該點歸到P2隊列
D、根據公式,再取兩個隊列的虛擬質心,即兩個隊列中的所有點距離的平均值
E、再次選距離近的點到相應的隊列,並且重復上述D
F、經過N次的叠代,隊列不再變化,即表示算法收斂,聚類完成
二、用輪廓系數法驗證聚類效果
該值處於[-1,1]之間,值越大,聚類效果越好
a是Xi與同簇的其它樣本的平均距離,稱為凝聚度
b是Xi與最近簇中所有樣本的平均距離,稱為分離度
a越小,一個聚類的數據點越集中。
三、Calinski-Harabasz(CH系數):類別內部數據的協方差越小越好,類別之間的協方差越大越好,這樣Calinski-Harabasz分數s會高,分數s高則聚類效果越好
m為訓練集樣本數,k為類別數。Bk為類別之間的協方差矩陳,Wk為類別內部數據的協方差矩陳,tr為矩陳的跡
類間協方差tr(Bk)越大越好,類內部協方差tr(Wk)越小越好,m樣本數越多越好,k類別數越小越好,即各個簇的間距越大越好,各簇內部的數據越緊密越好,樣本數越多越好,即數據量越多越好,劃分的簇個數越少越好,
Wk為類別內部數據的協方差矩陣,tr為矩陳的跡,所以
四、聚類分類:
硬聚類:即每一個數據只能被歸為一類,即每一個數據都會100%被確定
軟聚類:每一個樣本以一定的概率被分到某一類中
五、算法優化:
四種硬聚類優化算法(K-means++,二分K-Means,ISODATA,Kernel K-means)
1、K-means++:中心思想為選取聚類中心不再采用隨機選取的方法,而是選取離當前質心越遠的那個點作為新的質心,(即選取的第一個質心和第二個質心越遠越好),離得越遠的點會有更大的概率被選成新的質心
2、ISODATA:類別數目會動態變化(無需深入學習),即類別數會隨機應變
3、Kernel K-means:將每個樣本進行投射到高維空間去處理,將處理後的數據用
4、二分K-means:首先將所有點作為一個簇,然後將該簇一分為二。之後選擇SSE最大的簇再劃分成兩個簇,如此循環下去,直到簇的數目等於用戶給定的數目K為止(可以加速算法的執行速度,不受初始化問題的影響,每一步都保證誤差最小)
六、誤差平方和公式
SSE(Sum of Squares for Error)稱作誤差的平方和作為度量聚類質量的目標函數,反映每個樣本各觀測值的離散狀況,又稱為組內平方和或殘差平方和。
SSE即為樣本的聚類誤差,代表聚類效果的好壞
K-Means算法總結