k-means 的優點
相對而言簡單導入。
擴充至大型資料集。
保證融合。
可開始啟動 centroid 的位置。
輕鬆配合新的範例調整內容。
概括至不同形狀和大小的叢集,例如橢圓叢集。
k-means 一般化
如果叢集的不同密度和大小,會發生什麼事?請查看圖 1。比較左側的直覺叢集和右側 k-means 實際找到的叢集。這項比較結果顯示 k-means 如何在特定資料集中查詢。
如要分群自然不平衡的叢集 (如圖 1 所示),您可以調整 (一般) k-means。在圖 2 中,這行程式碼顯示 k-means 一般化後的叢集邊界如下:
- 左圖:無一般化,因此不符合直覺的叢集邊界。
- 中間圖:允許不同的叢集寬度,並產生更直觀且大小不同的叢集。
- 右側圖:除了不同的叢集寬度外,每個維度可以有不同寬度,導致橢圓叢集而非球面叢集,進而改善結果。
雖然本課程沒有深入探討如何一般化 k-means 的方法,但請記住,修改 k-means 的另一個原因,就是為什麼有強大的功能。如需一般化 k-means 的資訊,請參閱 Carnegie Mellon University 旗下 Carlos Guestrin 的 Clustering – K-means Gaussian 綜合模型。
K-means 缺點
手動 \(k\) 選擇。
使用「Loss and Clusters」對比圖,找出最佳 (k) 函式,如解讀結果一節中所述。
相依於初始值。
針對低 \(k\),您可以減少 k-mean 多次執行不同的初始值並挑選最佳結果,藉此減少這項依附元件。隨著 \(k\)持續增加,您需要進階版本的 k-means,以便挑選初始初始 centroid 的值 (稱為「k-means 種子」)。如需關於 k-means 播映的完整資訊,請參閱 M. 的 Com Compicative Study Methods of Efficient Initialization Methods for K-Means Clustering Algorithm (M. 提供一個比較研究的方法)。Emre Celebi、hassan A. Kingravi、Patricio A. Vela.
不同大小和密度的叢集資料。
在叢集大小和密度不同的叢集上,k-means 可能無法將資料分群。如要彙整這類資料,您必須按照「優勢」一節的說明將 k-means 進行一般化。
分群離群值。
「企業架構」可以拖曳離群值,或是離群值可能會取得專屬叢集,而非忽略。請考慮在分群前移除或裁剪離群值。
根據尺寸縮放。
隨著維度的數量增加,以距離為基礎的相似度測量值將融合至任何指定範例之間的常數值。如要縮減維度,請使用特徵資料的 PCA,或是利用「光譜分群法」修改叢集演算法,如下所述。
維度和光譜分群
這些圖表顯示標準偏差與範例之間的距離平均值,以隨著維度數量增加而減少的情況。這種融合方式代表區分 k-means 時會區分不同的範例。高維度資料的這種負面結果稱為維度的曲線。
Spectral 分群透過在演算法中新增預先分群步驟來避免維度維度:
- 使用 PCA 來減少特徵資料的維度。
- 將所有資料點投影到較低維度的子空間。
- 使用所選的演算法將資料整理到這個子空間中。
因此,頻譜分群並非單獨的分群演算法,而是可用於任何分群演算法的預先分群法步驟。頻譜分群的詳細資料很複雜。請參閱 Ulrike von Luxburg 的 A Tutorial on Spectral Clustering。