K-means 怎麼選 K ?

K-means 怎麼選 K ?

這個問題咱們能夠回到 K-means 或是 Cluster 方法的核心目標:算法

同一羣裏的資料同質性高,不一樣羣的資料同質性低。3d

這邊的同質性高會以「距離」做爲指標,也就能夠換句話說:cdn

同一羣裏內的距離近,不一樣羣間的距離遠。blog

基於這個概念,提供兩種方式來挑選 K:ci

1. 手肘法(elbow method)

其概念是基於 SSE(sum of the squared errors,偏差平方和)做爲指標,去計算每個羣中的每個點,到羣中心的距離。算法以下:get

其中總共有 K 個羣, Ci 表明其中一個羣,mi 表示該羣的中心點。it

根據 K 與 SSE 做圖,能夠從中觀察到使 SSE 的降低幅度由「快速轉爲平緩」的點,通常稱這個點爲拐點(Inflection point),咱們會將他挑選爲 K。由於該點能夠確保 K 值由小逐漸遞增時的一個集羣效益,所以適合做爲分羣的標準。io

2. 輪廓係數法(Silhouette Coefficient)

輪廓係數法的概念是「找出相同羣凝聚度越小、不一樣羣分離度越高」的值,也就是知足 Cluster 一開始的目標。其算法以下:class

其中,凝聚度(a)是指與相同羣內的其餘點的平均距離;分離度(b)是指與不一樣羣的其餘點的平均距離。 S 是指以一個點做爲計算的值,輪廓係數法則是將全部的點都計算 S 後再總和。 S 值越大,表示效果越好,適合做爲 K。集羣

結論

從上面的例子來講,輪廓係數法容易找出區域最佳解,所以實務上會搭配不一樣的方法相互參考。


License

本著做由Chang Wei-Yaun (v123582)製做, 以創用CC 姓名標示-相同方式分享 3.0 Unported受權條款釋出。

相關文章
相關標籤/搜索