機器學習聚類入門系列2:K-means使用細節,注意事項

3.1 K-Means

這個算法可能是大家最熟悉的聚類算法,簡單來說,選取初始中心點,就近吸附到中心點,迭代這一過程直到各個中心點移動很小為止。接下來,我們詳細討論k-means算法在實際應用中的一些注意事項。

注意事項

k-means需要輸入劃分簇的個數,這是比較頭疼的問題,為了應用它得先用別的算法或者不斷試算得出大致數據可分為幾類。這可能只是帶來一些麻煩,還不能說是缺陷。不過,k-means算法的確存在如下缺陷:

首先,它對初始中心點的選取比較敏感,如果中心點選取不恰當,例如隨機選取的中心點都較為靠近,那麼最後導致的聚類結果可能不理想。為了避免,通常都要嘗試多次,每次選取的中心點不同一次來保證聚類質量, sklearn中實現了這種初始化框架k-means++. 關於這個機制可參考論文:

k-means++: The advantages of careful seeding

其次,K-means是通過吸附到中心點的方法聚類,它的基本假定: 簇是凸集且是各向同性的,但是實際中並不總是這樣,如果簇是加長型的,具有非規則的多支路形狀,此時k-means聚類效果可能一般。

最後,在高維空間下歐拉距離會變得膨脹,這就是所謂的“維數詛咒”。為了緩解此問題,通常k-means聚類前要使用PCA等降維算法,將多特徵集中表達在低特徵空間中,同時加快聚類收斂。

3.2 Mini Batch K-Means

K-means算法每次迭代使用所有樣本,這在數據量變大時,求解時間就會變長。為了降低時間複雜度,隨機選取b個樣本形成一個mini-batch,這種算法就是 mini-batch k-means.它也是隨機選取初始點,然後就近吸附到中心點,更新中心點直到移動很小為止。

雖然每次迭代只是抽樣部分樣本,但是聚類質量與k-means相比差不太多。

私信回覆下載更多學習資源:

cs224 下載自然語言處理與深度學習斯坦福所有課程PPT


分享到:


相關文章: