K-means 怎么选 K ?
这个问题我们可以回到 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授权条款释出。