k-均值收敛的证明


20

对于一项作业,我被要求提供证明k均值收敛于有限数量的步骤。

这是我写的:

在下文中,C是所有群集中心的集合。定义一个“能量”函数 能量函数为非负。我们看到算法的步骤(2)和(3)都减少了能量。由于能量是从下方限制并不断减少的,因此必须收敛到局部最小值。当E(C)的 变化率低于某个阈值时,可以停止迭代。

E(C)=xmini=1kxci2
E(C)

步骤2是通过每个数据点的最近聚类中心标记每个数据点的步骤,而步骤3是通过平均值对中心进行更新的步骤。

这不足以证明在有限数量的步骤中收敛。能量可以不断变小,但不排除在不改变能量的情况下中心点跳动的可能性。换句话说,可能存在多个能量最小值,并且算法可以在它们之间跳跃,不是吗?


5
提示:可能有多少个中心点集合?
ub

Answers:


35

首先,最多有种方法将数据点划分为群集;每个这样的分区都可以称为“集群”。这是一个很大但有限的数字。对于算法的每次迭代,我们基于旧的聚类产生一个新的聚类。注意kNNk

  1. 如果旧的群集与新的群集相同,则下一个群集将再次相同。
  2. 如果新的群集与旧的群集不同,则更新的群集的成本较低

由于算法会迭代域为有限集的函数,因此迭代必须最终进入一个循环。循环的长度不能大于因为否则(2),您将拥有一些聚类,其成本比其本身低,这是不可能的。因此,循环的长度必须恰好为。因此,k均值在有限数量的迭代中收敛。11


为什么顺序很重要?也就是说,为什么我们没有选择聚类?Nk
rrrrr

@rrrrr正确的公式是其中{n{nk}第二类斯特林数。这不要紧,因为我说的最多ķñ{nk} kN
jkabrg

6

要添加的内容:算法是否收敛还取决于您的停止条件。如果一旦集群分配不再改变就停止算法,那么您实际上可以证明算法不一定收敛(前提是在多个质心距离相同的情况下,集群分配没有确定性的决胜局)。

在此处输入图片说明

在这里,您有8个数据点(点)和两个质心(红叉)。现在,绿色数据点到左和右质心的距离相同。蓝色数据点也是如此。让我们假设在这种情况下分配函数不是确定性的。此外,我们假设在迭代1中,绿点被分配给左簇,而蓝点被分配给右簇。然后,我们更新质心。事实证明,他们实际上留在同一地点。(这是一个简单的计算。对于左质心,请平均两个左黑点和两个绿点的坐标->(0,0.5)。对于右质心相同)。

然后在迭代2中,情况再次看起来相同,但现在我们假设(在平局的情况下)非确定性赋值函数将绿色点分配给右侧簇,将蓝色点分配给左侧簇。同样,质心不会改变。

迭代3再次与迭代1相同。因此,我们遇到了以下情况:群集分配连续更改,并且算法(具有此停止条件)不收敛。

<

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.