1. 程式人生 > >K-means演算法補充:K-means++

K-means演算法補充:K-means++

K-means演算法是機器學習經典演算法之一,對於機器學習的初學者來說,最先接觸的應該就是該演算法,對於K-means演算法思想都已經很熟悉了,本文主要介紹K-means聚類中心的初始化。

K-means演算法對聚類中心的初始化比較敏感,不同的初始值會帶來不同的聚類結果。在標準的K-means演算法中,初始聚類中心採用隨機取樣方式,但是不能保證得到期望的聚類結果。為了獲得較好的聚類結果,也可以採用多次隨機初始聚類中心,然後對比分析聚類結果進行選擇聚類中心,但卻需要很多計算時間。

David Arthur提出的K-means++演算法,能夠有效產生聚類中心。K-means++演算法:首先隨機初始化一個聚類中心C={c1};然後通過迭代計算最大概率值:
這裡寫圖片描述


其中d(x,C)為:這裡寫圖片描述
然後加入下一個聚類中心:這裡寫圖片描述