K-Means 是否有一个假设“每个集群有大致相等数量的观察值”?

机器算法验证 机器学习 聚类 数据挖掘 k-均值 假设
2022-03-05 20:48:30

一位讲师在最近的一堂课上声称“K-means 假设每个集群包含大致相等数量的观察值”。

但是,当我在网上搜索时,关于这一点的信息相互矛盾。

这个问题的答案声称 K-Means 中的“大小”是指面积,而不是基数

然而,这个问题的答案明确声称 K-Means 中的“大小”是指“集群中的点数”,而不是“散布”!

这个高度赞成的问题也没有帮助。该问题包括一个陈述,即 K-Means 具有以下假设:

所有 k 个聚类的先验概率相同,即每个聚类具有大致相等数量的观测值

不幸的是,这个问题的答案似乎根本没有直接解决这个“假设”。所以还是不知道是真是假。

维基百科

人工数据集(“鼠标”)上的 k 均值聚类和 EM 聚类。k-means 倾向于产生相同大小的簇导致不好的结果,而 EM 受益于数据集中存在的高斯分布

这进一步增加了混乱。

前两个问题的答案似乎直接相互矛盾。那么其中之一一定是错误的/不准确的?

K-Means 与“每个集群中的观察数量相等”究竟是什么关系?这是一个假设吗?结果的趋势?或者两者都不是?

3个回答

在标准的 K-means 算法中肯定没有假设每个集群中有相同数量的点。然而,某些标准算法确实倾向于均衡空间集群的方差,在集群之间存在重叠的情况下,这可能导致集群大小相等的(粗略)趋势。例如,一种标准方法是通过最小化集群内平方和 (WCSS) 来估计集群。在存在多个重叠簇的情况下,该方法倾向于以(粗略)均衡簇的空间方差的方式分配点,这可能导致(粗略)均衡每个簇中的点数。使用参数形式在每个集群中允许更大的方差自由度的替代方法将缺乏这种趋势。

我建议将其解释为经常相似的 area/extend但当然,意见可能会有所不同。

由于相邻集群的决策边界恰好位于中心之间的中间(参见 Voronoi 图),因此有一个很好的论据可以将这些称为“有点相等”,即使它不支持甚至可以是无限的。所以形式上,面积也是一个问题。

除非您假设例如均匀分布,否则我看不到产生相同数量观察值的“趋势” 。相反,构建反例是微不足道的。例如,一维数据集 1,2,3,4,5,6,7,8,9,10,100 将产生最大不平衡的集群(与 2 个分区一样不平衡)。

由于这些例子,我会拒绝 kmeans 产生相同基数的集群的说法。并且为了平衡基数而存在修改:例如,https ://elki-project.github.io/tutorial/same-size_k_means

让我们先回顾一下 k-means:

  • k-means 算法根据质心的更新对数据点进行聚类(因此称为基于中心的聚类)。
  • 质心最初是随机选择的。(当然,不是所有的 k-means 变体。)
  • 质心将通过在每次迭代中获取每个集群的平均值来更新。我认为我们假设距离度量是欧几里得。(是的,这很重要。)

这些事实导致球形聚类。这意味着,在 2D 空间中,可以使用k个磁盘来分隔簇。在 n 维空间中,k 个 n 球体将分割空间。您的问题是,这些磁盘(n 球体)是否环绕大致相等数量的数据点。我的回答是“是和不是”!让我详细说明一下:

  1. 如果数据的分布是均匀的,那么无论最初如何选择质心,空间(以及因此数据)将大致均等地划分。 在此处输入图像描述

  2. 如果分布不均匀,则结果取决于如何选择质心。但是,仍然不容易想到一个空间(而不是数据)没有被平均划分的例子。 在此处输入图像描述 因此,我们不能说 k-means 是否产生相等大小的集群(具有相同数量的数据品脱的集群),除非假设日期具有均匀(甚至是高斯)分布。由于在许多科学示例中,数据是正态分布的,因此我们通常不会费心提及我们建立理论的假设。

作为旁注,我们已经知道,任何倾向于找到球形簇的聚类算法都不应该用于特定分布的数据点。看看右图的杰作,它是由错误的方法选择完成的: 在此处输入图像描述 然而,这并没有使 k-means 成为一个不那么强大的聚类算法。它仍然是我们了解数据的第一个工具,因为它速度快(O(n⋅k⋅d⋅i)-此处-,Lloyd 版本),并且非常易于解释。

根据我们应该期望的聚类类型(分离良好、连续、基于中心、基于密度等),我们需要使用不同的聚类算法。

附图参考:

  1. 前两组图是我使用 k-means 玩的一个很棒的小程序的屏幕截图:Naftali Harris
  2. 最后一个情节,我从Sandipan Dey的 Spectral Clustering 上的一篇很棒的帖子中借来的。