Scikit-learn,KMeans:如何使用max_iter

时间:2016-12-01 10:10:09

标签: python parameters scikit-learn cluster-analysis k-means

我想了解班级sklearn.cluster.KMeans中的参数max_iter。

根据文件:

max_iter : int, default: 300
Maximum number of iterations of the k-means algorithm for a single run.

但在我看来,如果我有100个对象,代码必须运行100次,如果我有10.000个对象,代码必须运行10.000次才能对每个对象进行分类。 而另一方面,在所有对象上运行几次是没有意义的。

我的误解是什么?如何解释这个参数?

2 个答案:

答案 0 :(得分:4)

看看这里:

https://www.naftaliharris.com/blog/visualizing-k-means-clustering/

每次单击更新质心时,都会执行新的迭代。这是有道理的,因为当质心移动时,到这些质心的距离也会发生变化,某些点可能会改变簇。

答案 1 :(得分:2)

是的,你误解了参数。

一次迭代一遍整个数据集。如果您有100个对象,则一次迭代分配100个点。如果您有10000个对象,则一次迭代会处理10000个对象。

有更聪明的算法;但sklearn k-means处理每次迭代中的每个对象。