Introduction

這個問題我們可以回到 K-means 或是 Cluster 方法的核心目標:

同一群裡的資料同質性高,不同群的資料同質性低。

這邊的同質性高會以「距離」作為指標,也就可以換句話說:

同一群裡內的距離近,不同群間的距離遠。

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

1. 手肘法(elbow method)

其概念是基於 SSE(sum of the squared errors,誤差平方和)作為指標,去計算每一個群中的每一個點,到群中心的距離。算法如下:

其中總共有 K 個群, Ci 代表其中一個群,mi 表示該群的中心點。

根據 K 與 SSE 作圖,可以從中觀察到使 SSE 的下降幅度由「快速轉為平緩」的點,一般稱這個點為拐點(Inflection point),我們會將他挑選為 K。因為該點可以確保 K 值由小逐漸遞增時的一個集群效益,因此適合作為分群的標準。

2. 輪廓係數法(Silhouette Coefficient)

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

其中,凝聚度(a)是指與相同群內的其他點的平均距離;分離度(b)是指與不同群的其他點的平均距離。S 是指以一個點作為計算的值,輪廓係數法則是將所有的點都計算 S 後再總和。S 值越大,表示效果越好,適合作為 K。

結論

從上面的例子來說,輪廓係數法容易找出區域最佳解,因此實務上會搭配不同的方法相互參考。


License


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