为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

使用k-means聚类时如何确定k?我一直在研究k-means聚类,有一点不清楚你是如何选择k的值的。这只是一个试验和错误的问题,还是还有更多的问题?
查看完整描述

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

您可以最大化贝叶斯信息准则(BIC):

BIC(C | X) = L(X | C) - (p / 2) * log n

其中L(X | C)在所述数据集的对数似然X根据模型Cp是在模型参数的数量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并没有足够强烈地惩罚模型的复杂性。


查看完整回答
反对 回复 2019-08-14
?
墨色风雨

TA贡献1853条经验 获得超6个赞

基本上,您希望在两个变量之间找到平衡:聚类数(k)和聚类的平均方差。您希望最小化前者,同时最小化后者。当然,随着簇数的增加,平均方差减小(直到k = n和方差= 0 的平凡情况)。

与数据分析一样,在所有情况下,没有一种方法比其他方法更好。最后,你必须使用自己最好的判断。为此,有助于根据平均方差绘制聚类数(假设您已经为几个k值运行了算法)。然后,您可以使用曲线拐点处的簇数。


查看完整回答
反对 回复 2019-08-14
  • 3 回答
  • 0 关注
  • 1991 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信