如果k-means聚类是高斯混合建模的一种形式,可以在数据不正常的情况下使用吗?

机器算法验证 聚类 数据挖掘 k-均值 高斯混合分布
2022-01-17 14:24:29

我正在阅读 Bishop 关于 GMM 的 EM 算法以及 GMM 和 k-means 之间的关系。

在这本书中,它说 k-means 是 GMM 的硬分配版本。我想知道这是否意味着如果我要聚类的数据不是高斯数据,我就不能使用 k-means(或者至少它不适合使用)?例如,如果数据是手写数字的图像,由 8*8 像素组成,每个像素的值为 0 或 1(假设它们是独立的,因此应该是伯努利的混合)?

我对此有点困惑,并会感激任何想法。

2个回答

在典型的 EM GMM 情况下,确实会考虑方差和协方差。这不是在 k-means 中完成的。

但事实上,k-means 的流行启发式方法之一(注意:k-means 是一个问题,而不是算法) - Lloyd 算法 - 本质上是一种 EM 算法,使用质心模型(无方差)和硬分配。

在进行 k-means 风格聚类(即方差最小化)时,您

  • 巧合地最小化平方欧几里得距离,因为 WCSS(簇内平方和)方​​差贡献 = 平方欧几里得距离
  • 巧合的是通过欧式距离将物体分配到最近的簇,因为sqrt函数是单调的(注意均值不是优化欧式距离,而是WCSS函数)
  • 仅使用质心表示集群
  • 得到 Voronoi 细胞形状的簇,即多边形
  • 它最适合球形星团

k-means 目标函数可以形式化为: 其中是数据集所有可能的分区到个分区,是数据集的维数,例如个实例的坐标

argminSi=1kxjSid=1D(xjdμid)2
S={S1Sk}kDxjdjd

通常说k-means假设球形簇。也普遍承认k-means 簇是Voronoi 单元,即不是球形的。两者都是正确的,也都是错误的。首先,这些簇不是完整的 Voronoi 单元,而只是其中的已知对象。无需将集群之间的死区视为任一集群的一部分,因为那里有一个对象会影响算法结果。但称它为“球形”也好不到哪里去,因为欧几里得距离是球形的。K-means 不关心欧几里得距离。只是,它是一种最小化方差的启发式方法。实际上,您应该将 k-means 视为:方差最小化。

GMM 使用延伸到无穷大的重叠山丘(但实际上只计算 3 sigma)。每个点得到所有山的概率分数。此外,山丘是“蛋形”[好吧,它们是对称椭圆],并且使用完整的协方差矩阵,可能会倾斜

K-means 将一个点硬分配给单个集群,因此其他集群中心的分数被忽略(隐式重置为零/不关心)。小山是球形的肥皂泡。在两个肥皂泡接触的地方,它们之间的边界变成了一个平面(超)平面。就像当你吹出许多肥皂泡的泡沫时,里面的泡沫不是扁平的而是四四方方的,所以许多(超)球体之间的边界实际上形成了空间的 Voronoi 分区。在 2D 中,这往往看起来像六边形密堆积,想想蜂巢(当然,Voronoi 单元格不能保证是六边形)。K-means 山是圆形的,不会倾斜,因此它的表示能力较小;但它的计算速度要快得多,尤其是在更高维度上。

因为 K-means 使用欧几里得距离度量,所以它假设维度是可比较的并且具有相同的权重。因此,如果维度 X 的单位为英里/小时,从 0 到 80 不等,维度 Y 的单位为磅,从 0 到 400 不等,并且您在这个 XY 空间中拟合圆,那么一维(及其传播)将比另一个维度更强大,并将掩盖结果。这就是为什么在采用 K-means 时习惯于对数据进行归一化的原因。

GMM 和 K-means 都通过拟合给出的最佳近似值来对数据进行建模。GMM 适合倾斜的鸡蛋,K-means 适合倾斜的球体。但基础数据可以是任何形状,可以是螺旋形或毕加索的画作,每个算法仍会运行,并发挥最佳效果。生成的模型是否看起来像实际数据取决于生成数据的基础物理过程。(例如,时间延迟测量是单方面的;高斯是否适合?也许。)

然而,GMM 和 K-means 都隐含地假设数据轴/域来自实数域Rn. 这取决于您尝试集群的数据轴/域类型。有序整数计数很好地映射到实数上。有序符号,例如光谱中的颜色,不太好。二进制符号,恩。无序符号根本不会映射到实数上(除非您从 2000 年开始使用创造性的新数学)。

因此,您的 8x8 二进制图像将被解释为第一个超象限中的 64 维超立方体。然后,算法使用几何类比来寻找聚类。使用 K-means 的距离在 64 维空间中显示为欧几里得距离。这是一种方法。