我正在查看我找到的算法列表,并尝试将它们用于学习目的。现在我正在编码K均值并且在以下内容中感到困惑。
您如何知道原始数据集中有多少个群集
除了所有质心必须不同之外,我选择初始聚类质心时是否有任何特定格式?例如,如果我选择不同但靠近的聚类质心,算法会收敛吗?
任何建议都将不胜感激
由于
答案 0 :(得分:4)
使用k-means,您可以最小化平方距离的总和。一种方法是尝试所有合理的k值。随着k增加,平方距离的总和应该减小,但是如果你绘制结果,你可能会看到平方距离的总和急剧减小到某个k值,然后慢得多。然后,最显着减少的最后一个值是k的最合理的值。
k-means并不保证每次运行都能找到最佳答案,并且它对您提供的起始值很敏感。减少问题的一种方法是多次启动,使用不同的起始值,并选择最佳答案。如果较大k的答案实际上大于较小k的答案,则看起来有点奇怪。避免这种情况的一种方法是使用k簇的最佳答案作为k + 1簇起点之一的基础(稍作修改)。
答案 1 :(得分:0)
在标准K-Means中,K值由您选择,有时基于问题本身(当您知道存在多少个类或您希望存在多少个类时)其他时间a"或多或少& #34;随机值。通常,第一次迭代包括从数据集中随机选择K个点作为质心。在以下迭代中,质心被调整。
在检查了K-Means算法之后,我建议你也看到K-means ++,这是对第一个版本的改进,因为它试图为每个问题找到最好的K,避免了有时发现的很差的聚类。标准k均值算法。
如果您需要有关某些机器学习算法实施的更多具体细节,请告知我们。