K均值(K-MEANS)


Kmeans是一種簡單的聚類方法,一般在數據分析前期使用,選取適當的k,將數據分類后,然后分類研究不同聚類下數據的特點。

 

算法原理

kmeans的計算方法如下: 

  1 隨機選取k個中心點;

  2 遍歷所有數據,將每個數據划分到最近的中心點,作為一個簇;

  3 計算每個聚類的平均值,並作為新的中心點;

  4 重復2-3,直到這k個中心點不再變化(收斂),或執行了足夠多的迭代。

 

輪廓系數

輪廓系數(Silhouette Coefficient)結合了聚類的凝聚度(Cohesion)和分離度(Separation),用於評估聚類的效果。該值處於-1~1之間,值越大,表示聚類效果越好。具體計算方法如下:

  1 對於第i個元素x_i,計算x_i與其同一個簇內的所有其他元素距離的平均值,記作a_i,用於量化簇內的凝聚度。 

  2 選取x_i外的一個簇b,計算x_i與b中所有點的平均距離,遍歷所有其他簇,找到最近的這個平均距離,記作b_i,用於量化簇之間分離度。 

  3 對於元素x_i,輪廓系數s_i = (b_i – a_i)/max(a_i,b_i) 計算所有x的輪廓系數,求出平均值即為當前聚類的整體輪廓系數 

從上面的公式,不難發現若s_i小於0,說明x_i與其簇內元素的平均距離小於最近的其他簇,表示聚類效果不好。如果a_i趨於0,或者b_i足夠大,那么s_i趨近與1,說明聚類效果比較好。

 

注意點

  1 隨機初始化的中心點可能會影響聚類結果,可以多次聚類選擇較優的聚類結果。

  2 K值的選取直接影響聚類簇數。

 

如何選取合適的K值

  1 最常用最簡單的方法可視化數據,然后觀察出聚類聚成幾類比較合適,高維數據可視化困難。

  2 令k從2到一個固定值如10,在每個k值上重復運行數次kmeans(避免局部最優解),並計算當前k的平均輪廓系數,最后選取輪廓系數最大的值對應的k作為最終的集群數目。

 

Kmeans算法優缺點

  優點:1 對於類似球形簇的數據集,聚類效果明顯;2 收斂速度較快,時間復雜度O(tkn) t為迭代次數 k中心點個數 n數據量;

  缺點:1 K值難以確定;2 初始點不合適,可能陷入局部最優的聚類結果;3 對噪點敏感(更新中心點使用均值,均值對噪聲敏感);4 對於不規則的簇,kmeans聚類結果差。

 

參考:https://www.cnblogs.com/bourneli/p/3645049.html

2020-05-30 11:22

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM