标准和球形 k 均值算法之间的区别

机器算法验证 聚类 数据挖掘 算法 k-均值
2022-01-28 00:56:29

我想了解,标准和球形 k 均值聚类算法之间的主要实现区别是什么。

在每一步中,k-means 计算元素向量和集群质心之间的距离,并将文档重新分配给这个质心最近的集群。然后,重新计算所有质心。

在球面 k-means 中,所有向量都被归一化,距离度量是余弦相异度。

仅此而已,还是还有别的?

1个回答

问题是:

经典k-means和球形k-means有什么区别?

经典 K 均值:

在经典的 k-means 中,我们寻求最小化集群中心和集群成员之间的欧几里得距离。这背后的直觉是,从集群中心到元素位置的径向距离对于该集群的所有元素应该“具有相同性”或“相似性”。

算法是:

  • 设置集群数量(又名集群计数)
  • 通过将空间中的点随机分配给集群索引来初始化
  • 重复直到收敛
    • 对于每个点,找到最近的集群并将点分配给集群
    • 对于每个聚类,求成员点的均值并更新中心均值
    • 误差是聚类距离的范数

球形 K 均值:

在球面 k-means 中,想法是设置每个集群的中心,以使组件之间的角度既均匀又最小。直觉就像看星星 - 点之间应该有一致的间距。这种间距更容易量化为“余弦相似度”,但这意味着没有“银河系”星系在数据的天空中形成大片明亮的条纹。(是的,我正试图在描述的这一部分中与奶奶交谈。)

更多技术版本:

想想向量,你用带有方向和固定长度的箭头绘制的东西。它可以在任何地方翻译并且是相同的向量。参考

在此处输入图像描述

空间中点的方向(它与参考线的角度)可以使用线性代数计算,尤其是点积。

如果我们移动所有数据,使其尾部在同一点,我们可以通过角度比较“向量”,并将相似的向量分组到一个集群中。

在此处输入图像描述

为清楚起见,向量的长度被缩放,以便它们更容易“眼球”比较。

在此处输入图像描述

你可以把它想象成一个星座。单个星团中的恒星在某种意义上彼此接近。这些是我眼中的星座。

在此处输入图像描述

一般方法的价值在于它允许我们设计没有几何维度的向量,例如在 tf-idf 方法中,其中向量是文档中的词频。添加的两个“and”字不等于一个“the”。单词是不连续的和非数字的。它们在几何意义上是非物理的,但我们可以几何地设计它们,然后使用几何方法来处理它们。球形 k-means 可用于基于单词进行聚类。

所以(2d 随机,连续)数据是这样的:

[x1y1x2y2group00.80.20130.7316B0.80.10.95240.3639A0.20.30.20610.1434C0.80.10.47870.153B0.70.20.72760.3825A0.90.90.7480.6793C]

几点:

  • 它们投影到一个单位球体以解释文档长度的差异。

让我们通过一个实际的过程,看看我的“目测”有多(糟糕)。

程序是:

  1. (隐含在问题中)在原点连接向量尾部
  2. 投影到单位球体上(考虑文档长度的差异)
  3. 使用聚类来最小化“余弦相异

J=id(xi,pc(i))
在哪里
d(x,p)=1cos(x,p)=x,pxp

(更多编辑即将推出)

链接:

  1. http://epub.wu.ac.at/4000/1/paper.pdf
  2. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.111.8125&rep=rep1&type=pdf
  3. http://www.cs.gsu.edu/~wkim/index_files/papers/refinehd.pdf
  4. https://www.jstatsoft.org/article/view/v050i10
  5. http://www.mathworks.com/matlabcentral/fileexchange/32987-the-spherical-k-means-algorithm
  6. https://ocw.mit.edu/courses/sloan-school-of-management/15-097-prediction-machine-learning-and-statistics-spring-2012/projects/MIT15_097S12_proj1.pdf