Sklearn Kmeans参数混乱?

时间:2016-11-30 18:33:05

标签: python scikit-learn k-means

所以我可以按以下方式运行sklearn kmeans

kmeans = KMeans(n_clusters=3,init='random',n_init=10,max_iter=500)

但我对参数意味着什么感到困惑

所以n_init说:

  

使用不同质心种子运行k-means算法的时间。根据惯性,最终结果将是n_init连续运行的最佳输出。

max_iter说:

  

单次运行的k-means算法的最大迭代次数。

但我不完全明白这意味着什么。 n_init在给定初始质心集的情况下,质心移动到点附近的次数是多少?

max_iter整个算法使用新的初始质心运行的次数是多少?

例如,对于max_iter=2n_init=15,kmeans将选择初始质心,然后将这些质心移动15次并得出聚类结果。然后kmeans将再次选择初始质心,移动那些质心15次,然后停止。然后,它将从两次运行中挑选最好的clutering?

感谢您的帮助!

[编辑] 的 或者与我在这里完全相反......?

1 个答案:

答案 0 :(得分:4)

使用max_iter=2n_init=15,kmeans将选择15次初始质心,并在15次运行中每次运动最多两次。

默认值为n_init=10max_iter=300。这意味着初始质心将被选择10次,每次运行将使用多达300次迭代。这10次运行中最好的将是最终结果。