scipy kmeans迭代意义?

时间:2013-07-13 03:34:01

标签: scipy k-means

我使用scipy的kmeans2算法来聚合图像中的像素颜色,以获得图像中的顶级平均颜色。

http://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.vq.kmeans2.html#scipy.cluster.vq.kmeans2

我对此参数的含义感到困惑:

iter : int
Number of iterations of the k-means algrithm to run. Note that this differs in meaning from the iters parameter to the kmeans function.

如果我希望kmeans算法运行直到群集不变,我会将iter值设置为高吗?有没有办法找到最佳 iter值?

1 个答案:

答案 0 :(得分:3)

K-means算法的工作原理是初始化一些K点并按照它们与这些点的距离来聚类数据。然后通过计算每个聚类的质心并通过距质心的距离重新定义聚类来迭代。这不能保证快速收敛,但通常会这样,所以它要求最大迭代值。

编辑:最大迭代值。不正确我认为,它实际上将迭代iter次。但是,默认的10是一个常见的iter值。

iter值越高,聚类越好。您可以尝试使用各种iter值在某些数据上运行K-means,并查看计算集群质量的某些增益的时间对于您的需求而言过高。