1

我正在使用来自 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价值?

4

1 回答 1

3

K-means 算法的工作原理是初始化一些 K 点并根据它们与这些点的距离对数据进行聚类。然后它通过计算每个集群的质心并通过与质心的距离重新定义集群来进行迭代。虽然它经常这样做,但不能保证快速收敛,因此它要求最大迭代值。

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

iter 值越高,聚类效果越好。您可以尝试对一些具有各种 iter 值的数据运行 K-means,并查看计算集群质量增益的时间对于您的需求来说太高了。

于 2013-07-13T03:43:26.520 回答