我想了解,标准和球形 k 均值聚类算法之间的主要实现区别是什么。
在每一步中,k-means 计算元素向量和集群质心之间的距离,并将文档重新分配给这个质心最近的集群。然后,重新计算所有质心。
在球面 k-means 中,所有向量都被归一化,距离度量是余弦相异度。
仅此而已,还是还有别的?
我想了解,标准和球形 k 均值聚类算法之间的主要实现区别是什么。
在每一步中,k-means 计算元素向量和集群质心之间的距离,并将文档重新分配给这个质心最近的集群。然后,重新计算所有质心。
在球面 k-means 中,所有向量都被归一化,距离度量是余弦相异度。
仅此而已,还是还有别的?
问题是:
经典k-means和球形k-means有什么区别?
经典 K 均值:
在经典的 k-means 中,我们寻求最小化集群中心和集群成员之间的欧几里得距离。这背后的直觉是,从集群中心到元素位置的径向距离对于该集群的所有元素应该“具有相同性”或“相似性”。
算法是:
球形 K 均值:
在球面 k-means 中,想法是设置每个集群的中心,以使组件之间的角度既均匀又最小。直觉就像看星星 - 点之间应该有一致的间距。这种间距更容易量化为“余弦相似度”,但这意味着没有“银河系”星系在数据的天空中形成大片明亮的条纹。(是的,我正试图在描述的这一部分中与奶奶交谈。)
更多技术版本:
想想向量,你用带有方向和固定长度的箭头绘制的东西。它可以在任何地方翻译并且是相同的向量。参考
空间中点的方向(它与参考线的角度)可以使用线性代数计算,尤其是点积。
如果我们移动所有数据,使其尾部在同一点,我们可以通过角度比较“向量”,并将相似的向量分组到一个集群中。
为清楚起见,向量的长度被缩放,以便它们更容易“眼球”比较。
你可以把它想象成一个星座。单个星团中的恒星在某种意义上彼此接近。这些是我眼中的星座。
一般方法的价值在于它允许我们设计没有几何维度的向量,例如在 tf-idf 方法中,其中向量是文档中的词频。添加的两个“and”字不等于一个“the”。单词是不连续的和非数字的。它们在几何意义上是非物理的,但我们可以几何地设计它们,然后使用几何方法来处理它们。球形 k-means 可用于基于单词进行聚类。
所以(2d 随机,连续)数据是这样的:
几点:
让我们通过一个实际的过程,看看我的“目测”有多(糟糕)。
程序是:
(更多编辑即将推出)
链接: