我是Python的初学者。现在,我试图了解sklearn.cluster.kmeans
的参数 n_init来自文档:
n_init :int,默认值:10
K-均值算法的时间数将使用不同的质心种子运行。最终结果将是N_Init连续运行的最佳输出。
首先,我认为这意味着代码会运行的时间数量,直到我找到有用的问题为止,我意识到这是 max_iter 做的。
参数到底是什么 n_init 做什么?我真的不明白。
在k均值中,质心的初始位置在其收敛中起着非常重要的作用。有时,将初始质心放置以一种方式,以至于在k均值的连续迭代中,簇簇不断发生巨大变化,甚至在收敛条件可能发生之前,就可以达到max_iter
,并且可以达到不正确的群集。因此,在这种情况下获得的群集可能不正确。为了克服此问题,引入了此参数。n_iter
的值基本上决定了如果使用算法,则有多少个不同的随机选择质心组。对于每一组不同的点,对群集移动的距离进行了比较,即,如果群集的行进距离很小,那么我们很有可能最接近地面真相/最佳解决方案。提供最佳性能的点及其各自的运行以及所有集群标签。
如果您有兴趣,也可以查看专门针对解决此问题的K-Means 算法。
您还可以查看此链接以获取有关初始质心很重要的更多详细信息。