实现弯头方法寻找R中K-Means聚类的最优簇数

use*_*152 6 r k-means

我想为我的数据集使用K-Means聚类.我在R中使用kmeans()函数来执行此操作.

 k<-kmeans(data,centers=3)
 plotcluster(m,k$cluster)
Run Code Online (Sandbox Code Playgroud)

但是我不确定这个函数K的正确值是多少.我想尝试使用 弯头方法 .R中是否有任何包使用弯头方法执行聚类以找到最佳簇数.

And*_*ton 8

这里有两个问题混在一起.一个是如何在曲线上找到变化点,另一个是如何在使用k-means对数据进行分类时量化拟合质量.但是,聚类分析人员似乎将这两个问题混为一谈.不要害怕使用适合您的情况的最合适的度量标准来研究其他曲线拟合/变化点方法.

我知道你所链接的'肘'方法是一种特定的方法,但你可能会对贝叶斯信息准则(BIC)中寻找"膝盖"的类似东西感兴趣.考虑到更复杂解决方案的额外计算要求,BIC中的扭结与聚类数量(k)是可以证明通过添加更多聚类来增加BIC不再有益的点.有一种很好的方法可以从BIC二阶导数的符号变化中检测出最小数量的聚类.见例如

Zhao,Q.,V.Hautamaki和P. Franti 2008a:BIC中的拐点检测用于检测簇的数量.智能视觉系统的高级概念,J.Blanc-Talon,S.Bourennane,W.Philips,D.Popescu,和P. Scheunders,Eds.,Springer Berlin/Heidelberg,Lecture Notes in Computer Science,Vol.5259,664-673,doi:10.1007/978-3-540-88458-3 60.

Zhao,Q.,M.Xu和P. Franti,2008b:贝叶斯信息准则的拐点检测.具有人工智能的工具,2008年.ICTAI '08.第20届IEEE国际会议,第二卷.2,431-438,doi:10.1109/ICTAI.2008.154

您可能对将其自动应用于天气数据感兴趣,请参阅http://journals.ametsoc.org/doi/abs/10.1175/JAMC-D-11-0227.1

另请参阅在曲线上找到最佳权衡点,以便对一般方法进行出色的讨论.

最后一点观察:确保你的对数一致.不同的社区使用不同的符号,这可能是比较结果时的错误来源.


小智 2

GMD 包提供了用于聚类评估的 Elbow 方法,请参阅:(第 7 页) http://cran.r-project.org/web/packages/GMD/GMD.pdf

一个很好的例子,请参阅: http://www.inside-r.org/packages/cran/GMD/docs/elbow