1.隨機選擇
選擇初始質心,我們可以用最基本的隨機方法,但是這種方法會導致一個局部最優解問題。即,將一個比較大的簇分裂,同時將兩個較小的簇進行合並。
由於K-Means算法具有不穩定性,初始質心選擇不同,結果也不同。所以解決局部最優的方法,其一可以多次運行算法,選擇具有最小SSE值的那組作為最終解。這種方法通過多次運行,通過嘗試,來解決隨機選擇初始質心問題。
不過可以通過以下其他方法來尋找比較好的初始質心。
2.層次聚類
通過層次聚類,划分k個層次,計算出每個簇對應的質心作為K-Means算法的初始質心。這種方法可以很好地解決初始質心指派不合理的問題。但是也有局限性。
3.K-Means++
K-Means++算法是基本算法的改進版,其區別就在於初始質心的選擇。
該算法第一個質心是隨機選擇的,接下來的質心基於樣本點與最近質心的距離,距離越大越可能被選為下一個質心,直到選擇完k個質心。
該方法有效地解決了關於初始質心的選取問題,目前已經成為了一種硬聚類算法的標准。但是該方法無法解決離群點問題。
4.基於最近鄰密度
該方法通過檢測樣本點的樣本密度和與之前質心的分散度來決定下一個質心。
鏈接:https://www.jianshu.com/p/4f8c097e26a8