Hartigan-Wong k-means方法和其他算法的收敛性


10

我一直试图理解主要statsR语言包中实现的不同的k均值聚类算法。

我了解劳埃德(Lloyd)算法和麦昆(MacQueen)的在线算法。我对它们的理解如下:

劳埃德算法:

最初选择“ k”个随机观测值作为“ k”簇的质心。然后,以下步骤迭代进行,直到质心收敛。

  1. 计算每个观测值与所选质心之间的欧几里得距离。
  2. 最接近每个质心的观测值标记在“ k”桶中。
  3. 每个存储桶中所有观测值的平均值用作新的质心。
  4. 新的质心取代了旧的质心,如果旧的和新的质心尚未收敛,则迭代返回到步骤1。

收敛的条件如下:旧质心和新质心完全相同,质心之间的差异很小(约为10 ^ -3)或达到最大迭代次数(10或100)。

麦昆的算法:

这是一个在线版本,其中第一个“ k”实例被选为质心。

然后,根据哪个质心最接近该实例,将每个实例放置在存储桶中。重新计算各个质心。

重复此步骤,直到将每个实例放置在适当的存储桶中。

此算法只有一次迭代,并且循环针对“ x”个实例进行

Hartigan-Wong算法:

  1. 将所有点/实例分配给随机存储桶并计算相应的质心。
  2. 从第一个实例开始,找到最近的质心并装配该铲斗。如果存储桶已更改,则重新计算新质心,即新分配的存储区的质心和旧存储区分配的质心,因为这是受更改影响的两个质心
  3. 遍历所有点并获得新的质心。
  4. 对点2和3进行第二次迭代,这将执行某种清理操作并将杂散点重新分配给正确的存储桶。

因此,该算法执行2次迭代,然后才能看到收敛结果。

现在,我不确定在Hartigan-Wong算法的第4点中我认为的方法是否正确。我的问题是,Hartigan-Wong的以下方法是否是实现k-means的正确方法?此方法只有两次迭代吗?如果不是,收敛的条件是什么(何时停止)?

我了解的另一个可能的实现说明是。

  1. 将所有点/实例分配给随机存储桶并计算相应的质心。
  2. 从第一个实例开始,找到最近的质心并分配该存储桶。如果存储桶已更改,则重新计算新质心,即新分配的存储区的质心和旧存储区分配的质心,因为这是受更改影响的两个质心。
  3. 一旦存储桶中的任何点发生更改,请回到第一实例并再次重复这些步骤。
  4. 当所有实例都被迭代且所有点均未更改存储桶时,迭代结束。

这样,每次实例更改存储桶时,都会从数据集的开头一次又一次地进行很多迭代。

任何说明都将有所帮助,如果我对这些方法中的任何一种理解有误,请告诉我。


什么 “桶”?
已退出–Anony-Mousse,2016年

@ Anony-Mousse“桶”是“集群”。例如:k-means用于将数据划分为“ k”个存储桶/集群
Sid 2016年

但这听起来像MacQueens算法。
已退出--Anony-Mousse,2016年

@ Anony-Mousse。是的,除了第一步之外,Hartigan-Wong似乎就像MacQueens算法一样。但是我不确定这是否是正确的理解。在迭代和收敛方面可能缺少一些概念。
Sid 2016年

Answers:


1

HW的算法(来自1979年的论文)将初始聚类作为输入。但是,作者在最后一节中提出了一种获取它们的方法。他们写道,可以保证在子例程中进行初始分配后,不会有任何集群为空。内容如下:

  1. 计算总体均值。x¯
  2. 根据观察值到的距离对它们进行排序,即(我猜是升序?)。x¯||xix¯||2
  3. 将位置的作为初始质心,其中。(最有可能涉及下限功能,因此开头是){1+(L1)[M/K]}L=1,,K[  ]1

至于主要算法,它在一篇名为Hartigan的K均值与Lloyd的K均值的论文中进行了描述,是时候改变了吗?由N Slonim,E Aharoni和K Crammer撰写,于2013年由AJCAI出版。请注意,此版本仅使用随机初始分区。如下。

对于向量和目标簇数,xXK

  1. 将设置为到簇的随机分区,并计算与每个相关的质心矢量,将它们表示为。CXKCCvC

  2. 以随机顺序扫描,然后扫描中的所有XxX

    2.1将停止指示器设置为s=1

    2.1。暂时从集群删除,令。xCC=C{x}

    2.2找到

    C+={argminC(CC)C 1nd(x,vC)+1nyC[d(y,vCx)d(y,vC)]}{x}

    2.3如果,则重置和并更新它们各自的向量和。还重置。C C C C + v C v C s 0C+CCCCC+vCvCs0

  3. 如果,则返回2。s=0

在这里,我略微滥用了表示法,让是2.2中的解决方案。步骤2.2仅计算了将添加到获得的损耗变化,而不是将单独留在自己的集群中(一旦删除)。代表距离。最后,以上引用的论文中提供了计算更新向量,等的特定方法。它们可以在线性时间内完成。a r g m i n x C d v C v C { x }CargminxCdvCvC{x}

我认为所有问题的答案都包含在上述算法中...但是,我仍然必须确保算法的这种实现是标准的。特别是如果它是在R中实现的,则欢迎任何评论/编辑。

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.