Skip to content

KMeans 与高斯混合模型

KMeans vs. Gaussian Mixture Models

我喜欢把高斯混合模型(Gaussian Mixture Model,GMM)看作 KMeans 的一个更广义的版本,它弥补了 KMeans 一些众所周知的局限。

ds p335 1

首先,KMeans 只能产生球状的簇。例如,如下图所示,即使数据中存在非圆形的簇,它依然会产生圆形的簇。

此外,它执行的是硬分配(hard assignment)。每个数据点属于每个簇并没有概率估计。

ds p335 2

最后,它在把数据点分配给簇时只依赖基于距离的度量。

为了更好地理解这一点,考虑二维空间中的两个簇——A 和 B。簇 A 的散布程度比 B 更大。

ds p336 1

现在考虑一条位于 A 和 B 质心正中间位置的直线。

ds p336 2

尽管 A 的散布程度更大,但即使一个数据点只在中线稍偏右一点,它也会被分配到簇 B。

ds p336 3

然而理想情况下,簇 A 本应拥有更大的影响范围。

这些局限常常使 KMeans 成为聚类的非理想之选。在这方面,高斯混合模型往往是更优的算法。顾名思义,它们可以对由多个高斯分布混合而成的数据集进行聚类。它们可以被看作 KMeans 的一个更灵活的双胞胎。

ds p337 1

主要的区别在于,KMeans 学习的是质心,而高斯混合模型学习的是一个分布。例如,在二维空间中,KMeans 只能创建圆形的簇,而 GMM 可以创建椭圆形的簇。

GMM 相对 KMeans 的有效性从下图中可以明显看出。

ds p337 2

  • KMeans 只依赖距离,忽略了每个簇的分布。
  • GMM 学习分布,从而产生更好的聚类。

本站内容仅供学习交流,版权归原作者所有。