常用的方法是elbow method(手肘法则)[1]。选不同的k值,例如从1-9,然后画出每一个k值的“距离之和”和k的关系图。
左轴可以是distortion
或者Inertia
distortion和inertia挺接近,都是衡量每个数据和最近中心点的距离之和,只是计算距离的方式不一样而已。
为什么要选个elbow点呢?毕竟在官方文档[2]中,是这么说的
The K-means algorithm aims to choose centroids that minimise the inertia, or within-cluster sum-of-squares criterion:
难道不是error越小越好吗?
理论上是,但你想想什么时候error最小?就是n个数据点分成n个簇。这样做clustering失去了意义。
有时候会出现曲线转折不明显的情况,如下:
这时候除了用放大镜找Elbow,也可以用一些容易计算的方法来找最佳K值。
在文章《Understanding of Internal Clustering Validation Measures》[3],介绍了Clustering的11种选择最佳值的方法。例如下图方法4-11的optimal value不是min就是max,不用再选elbow。