K-means 對許多機器學習環境來說很實用和效率,但 一些明顯的弱點
k-means 的優點
實作方式相對簡單。
擴充至大型資料集。
雙管齊下
允許暖啟動群集中心的位置。
順暢適應新的例子。
可一般化成不同叢集 例如橢圓星團
一般化 k-means
直接實作 k-means 時,可能難以處理 密度和大小各有不同圖 1 左側顯示叢集 我們預期就能看到的內容,右側則是 k-means 建議的叢集。
為了提高平衡叢集的效能 (如圖 1 所示), 你可加以一般化,也就是直接調整 k-means圖 2 顯示三種不同的 以兩種不同的一般化方式分群資料集第一個資料集會顯示 k-means 不會一般化,而第二和第三個則可讓叢集 寬度各有不同
本課程不在探討如何一般化 k-means 請參閱分群法 – k-means Gaussian 混合 模型 來自卡內基美隆大學的 Carlos Guestrin
k-means 的缺點
必須手動選擇\(k\) 。
結果取決於初始值。
如果是較低的 \(k\),您可以執行 k-means 多個 並挑選出最佳結果身為 \(k\) 增加,則需要 k-means Seeding,才能挑選較好的初始 群集中心 如果想完整討論 k-means 的種子,請參閱 "比較 研究 K-means 分群法的有效初始化方法 演算法。」Emre Celebi、Hasan A.Kingravi 和 Patricio A.Vela。
難以分群各種大小和 沒有一般化的密度。
難以分群離群值。
離群值可以拖曳中心星座,或者離群值則有自己的叢集 而不是被忽略建議你先移除或裁掉離群值, 分群法
難以擴充至多個維度。
隨著資料中的維度數量增加,以距離為基準的相似度 任何指定範例之間的常數值集合。遏止 建立維度 PCA 篩選特徵資料,或使用光譜分群法修改分群法 演算法。
維度和光譜式分群法
在這 3 個圖中,您會發現當維度增加時 在樣本之間的距離減少 (相對於兩個指標之間的平均距離) 範例。這個 融合則代表 k-means 的辨識效率較低 都會逐漸增加這些樣本這稱為 維度的曲線。
您可以透過光譜分群法避免效能降低 ,將預先分群的步驟新增到演算法。為了執行光譜 分群法:
- 使用 PCA 減少特徵資料的維度。
- 將所有資料點投影到較低維度子空間中。
- 使用您選擇的演算法,在這個子空間中將資料分群。
請參閱 Spectral 的教學課程 分群法由 Ulrike von Luxburg 提供 分群法