使用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
根据模型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并没有足够强烈地惩罚模型的复杂性。
墨色风雨
TA贡献1853条经验 获得超6个赞
基本上,您希望在两个变量之间找到平衡:聚类数(k)和聚类的平均方差。您希望最小化前者,同时最小化后者。当然,随着簇数的增加,平均方差减小(直到k = n和方差= 0 的平凡情况)。
与数据分析一样,在所有情况下,没有一种方法比其他方法更好。最后,你必须使用自己最好的判断。为此,有助于根据平均方差绘制聚类数(假设您已经为几个k值运行了算法)。然后,您可以使用曲线拐点处的簇数。
添加回答
举报
0/150
提交
取消