k-means 的優缺點

K-means 對許多機器學習環境來說很實用和效率,但 一些明顯的弱點

k-means 的優點

實作方式相對簡單

擴充至大型資料集。

雙管齊下

允許暖啟動群集中心的位置。

順暢適應新的例子。

可一般化成不同叢集 例如橢圓星團

一般化 k-means

直接實作 k-means 時,可能難以處理 密度和大小各有不同圖 1 左側顯示叢集 我們預期就能看到的內容,右側則是 k-means 建議的叢集。

兩個圖表並列顯示。第一項顯示資料集內含較明顯的叢集。第二張圖呈現執行 k-means 後的奇怪範例群組。
圖 1:未一般化的 k-means 範例。

為了提高平衡叢集的效能 (如圖 1 所示), 你可加以一般化,也就是直接調整 k-means圖 2 顯示三種不同的 以兩種不同的一般化方式分群資料集第一個資料集會顯示 k-means 不會一般化,而第二和第三個則可讓叢集 寬度各有不同

三個圖表顯示未一般化的 k-means,然後是 k-means
       ,可以設定不同寬度,則使用 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 的辨識效率較低 都會逐漸增加這些樣本這稱為 維度的曲線

三圖顯示樣本之間的標準距離在維度數量增加時如何降低的標準差
圖 3:示範維度曲線。每個圖都會顯示 200 個隨機點之間的配對距離。

您可以透過光譜分群法避免效能降低 ,將預先分群的步驟新增到演算法。為了執行光譜 分群法:

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

請參閱 Spectral 的教學課程 分群法由 Ulrike von Luxburg 提供 分群法