k-Means 的優點和缺點

k-means 的優點

相對而言簡單導入。

擴充至大型資料集。

保證融合。

可開始啟動 centroid 的位置。

輕鬆配合新的範例調整內容。

概括至不同形狀和大小的叢集,例如橢圓叢集。

k-means 一般化

如果叢集的不同密度和大小,會發生什麼事?請查看圖 1。比較左側的直覺叢集和右側 k-means 實際找到的叢集。這項比較結果顯示 k-means 如何在特定資料集中查詢。

兩張圖表並排顯示。第一項顯示資料集含有明顯明顯的資料集。第二組顯示執行 k-means 後奇數的範例群組。
圖 1:非通用 k-means 範例。

如要分群自然不平衡的叢集 (如圖 1 所示),您可以調整 (一般) k-means。在圖 2 中,這行程式碼顯示 k-means 一般化後的叢集邊界如下:

  • 左圖:無一般化,因此不符合直覺的叢集邊界。
  • 中間圖:允許不同的叢集寬度,並產生更直觀且大小不同的叢集。
  • 右側圖:除了不同的叢集寬度外,每個維度可以有不同寬度,導致橢圓叢集而非球面叢集,進而改善結果。
兩張圖表並排顯示。第一個為球形叢集範例,第二個為非球面叢集範例。
圖 2:球形叢集範例和非球面叢集範例。

雖然本課程沒有深入探討如何一般化 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 時會區分不同的範例。高維度資料的這種負面結果稱為維度的曲線。

三個圖表顯示範例之間的距離偏差如何隨著尺寸增加而減少
圖 3:示範維度維度。每個圖表會顯示 200 個隨機點之間的配對距離。

Spectral 分群透過在演算法中新增預先分群步驟來避免維度維度:

  1. 使用 PCA 來減少特徵資料的維度。
  2. 將所有資料點投影到較低維度的子空間。
  3. 使用所選的演算法將資料整理到這個子空間中。

因此,頻譜分群並非單獨的分群演算法,而是可用於任何分群演算法的預先分群法步驟。頻譜分群的詳細資料很複雜。請參閱 Ulrike von Luxburg 的 A Tutorial on Spectral Clustering