【问题标题】:Scikit-learn, KMeans: How to use max_iterScikit-learn,KMeans:如何使用 max_iter
【发布时间】:2017-04-15 22:07:40
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    看这里:

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

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

    【讨论】:

    【解决方案2】:

    是的,您误解了参数。

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-11
      • 2015-02-20
      • 2018-09-04
      • 2019-09-05
      • 2019-11-29
      • 2015-04-05
      • 2015-04-09
      • 2015-11-20
      • 2015-11-28
      相关资源
      最近更新 更多