k-means學習筆記
算法思想
k-means算法是一種聚類分析算法,通過不斷地迭代求解實現對樣本的分類,其中k代表的是樣本的類別數。k-means對樣本按相似性進行分簇,其基本思想是讓簇內的樣本點更“緊密”一些,也就是說,讓每個樣本點到本簇中心的距離更近一些。
算法步驟
- 隨機產生k個初始簇中心(或者隨機選擇k個點作為初始簇中心);
- 對每個點,計算與所有簇中心的距離,將其分配到最近的簇;
- 如果沒有點發生分配結果的改變,則結束,否則繼續下一步;
- 計算每個簇中所有點坐標的平均值,找到新的簇中心;
- 回到第二步。
注意
- 常用歐式距離作為距離的度量,在計算距離前可以先進行標準化操作。
- 算法的優化目標是使每個樣本點到本簇中心的距離的平方和盡量小。
- 每個樣本點到本簇中心的距離的平方和也稱為誤差平方和(SSE),在優化算法中稱為損失函數或代價函數。
算法優缺點
優勢
- 簡單,快速,適合常規數據集。
劣勢
-
不同的初始點對結果的影響非常大;
-
k值難確定,普遍情況下需要多次設置k值來比較;
-
復雜與樣本數呈線性關系;
-
很難發現任意形狀的簇。

浙公網安備 33010602011771號