Python,Scikit-Learn,K-Means:参数n_init实际上是什么



我是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 算法。

您还可以查看此链接以获取有关初始质心很重要的更多详细信息。

相关内容

  • 没有找到相关文章

最新更新