无论集群中心如何初始化,Kmeans 算法是不是都能保证收敛?为啥?

Posted

技术标签:

【中文标题】无论集群中心如何初始化,Kmeans 算法是不是都能保证收敛?为啥?【英文标题】:Is Kmeans algorithm guaranteed to converge regardless of how the cluster centers are initialized? Why?无论集群中心如何初始化,Kmeans 算法是否都能保证收敛?为什么? 【发布时间】:2020-08-22 05:31:33 【问题描述】:

K-means 是一种随机初始化聚类中心的迭代算法。无论集群中心如何初始化,Kmeans 算法是否都能保证收敛? 为什么?

【问题讨论】:

stats.stackexchange.com/questions/188087/… 【参考方案1】:

是的。它收敛但不覆盖到相同的结果,而不是以相同的速度覆盖。 它在数学上证明了在 k-means 中寻找中心的迭代运行是收敛的。原因是:

在 k-means 的每次迭代中,到中心的距离总和都会减少。这是因为在每次迭代中如何选择中心(集群中心是每个集群节点的平均值)。这样,随着每次迭代中距离的总和减少,(因为您将每个节点分配到最近的中心)算法收敛。正如我之前所说,这种收敛有一个数学证明。 K-means是一种期望最大化(EM)算法,每个EM算法都会收敛。 (你可以看这个证明,如果你有兴趣我可以用数学公式来解释。)

【讨论】:

以上是关于无论集群中心如何初始化,Kmeans 算法是不是都能保证收敛?为啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 Spark Kmeans 初始中心

基于K-means聚类算法的图像分割

数据挖掘之KMeans算法应用与简单理解

在 Python 中为每次迭代绘制 KMeans 聚类中心

Kmeans算法

kmeans初始中心不同结果可能不同 (举例)