使用k-means聚类时如何确定k?

使用k-means聚类时如何确定k?

我一直在研究k-means聚类,有一点不清楚你是如何选择k的值的。这只是一个试验和错误的问题,还是还有更多的问题?



慕雪6442864
浏览 1998回答 3
3回答

幕布斯7119047

您可以最大化贝叶斯信息准则(BIC):BIC(C | X) = L(X | C) - (p / 2) * log n其中L(X | C)在所述数据集的对数似然X根据模型C,p是在模型参数的数量C,并且n是在数据集中的点的数量。参见Dan Pelleg和Andrew Moore在ICML 2000中的“X-means:扩展K -means并有效估计簇的数量”。另一种方法是从较大的值开始k并继续移除质心(减少k),直到它不再减少描述长度。参见Horst Bischof,Ales Leonardis和Alexander Selb在Pattern Analysis and Applications vol。中的“MDL原理用于鲁棒矢量量化”。2,p。1999年9月59日至72日。最后,您可以从一个群集开始,然后继续分割群集,直到分配给每个群集的点具有高斯分布。在“学习k -me 中的k ”(NIPS 2003)中,Greg Hamerly和Charles Elkan展示了一些证据表明这比BIC更好,并且BIC并没有足够强烈地惩罚模型的复杂性。

墨色风雨

基本上,您希望在两个变量之间找到平衡:聚类数(k)和聚类的平均方差。您希望最小化前者,同时最小化后者。当然,随着簇数的增加,平均方差减小(直到k = n和方差= 0 的平凡情况)。与数据分析一样,在所有情况下,没有一种方法比其他方法更好。最后,你必须使用自己最好的判断。为此,有助于根据平均方差绘制聚类数(假设您已经为几个k值运行了算法)。然后,您可以使用曲线拐点处的簇数。
打开App,查看更多内容
随时随地看视频慕课网APP