Scikit-learn、KMeans:如何使用 max_iter

Scikit-learn, KMeans: How to use max_iter

我想了解 class 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 次才能 class 验证每个对象。 另一方面,对所有对象多次 运行 是没有意义的。

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

看这里:

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

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

是的,您误解了参数。

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

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