为什么使用高斯混合模型?

机器算法验证 正态分布 无监督学习 高斯混合分布
2022-03-22 08:02:42

我正在学习高斯混合模型(GMM),但我对为什么任何人都应该使用这个算法感到困惑。

  1. 在聚类方面,该算法如何优于其他标准聚类算法(例如 -means)?意味着算法将数据划分为具有明确集合成员资格个集群,而高斯混合模型不会为每个数据点生成明确的集合成员资格。用 GMM 说一个数据点更接近另一个数据点的度量标准是什么?KKK

  2. 如何利用 GMM 产生的最终概率分布?假设我获得了最终的概率分布,其中是权重,那又如何?我已经获得了适合我的数据的概率分布。我能用它做什么?f(x|w)wx

  3. 继续我之前的观点,对于意味着,最后我们获得了一组个簇,我们可以将其表示为集合,它们是个事物。但是对于 GMM,我得到的只是一个分布这是件事。这怎么能用于将事物聚类到集群中?KK{S1,,SK}Kf(x|w)=i=1NwiN(x|μi,Σi)1K

2个回答

我将借用(1)中的符号,在我看来它很好地描述了 GMM。假设我们有一个特征的分布进行建模,我们可以拟合以下形式的 GMMXRdX

f(x)=m=1Mαmϕ(x;μm;Σm)
其中是混合物中成分的数量,个成分的混合物重量是具有平均和协方差矩阵的高斯密度函数。使用 EM 算法(它与 K-Means 的联系在这个答案中进行了解释)我们可以获取模型参数的估计值,我将在这里用帽子表示(所以,我们的 GMM 现在已经安装到上,让我们使用它吧!Mαmmϕ(x;μm;Σm)μmΣmα^m,μ^m,Σ^m)X

这解决了您的问题 1 和 3

用 GMM 说一个数据点更接近另一个数据点的度量标准是什么?
[...]
这怎么能用于将事物聚类到 K 集群中?

由于我们现在有一个分布的概率模型,因此我们可以计算给定实例属于组件的后验概率,这有时被称为组件对(产生) (2 ) ,记为ximmxir^im

r^im=α^mϕ(xi;μm;Σm)k=1Mα^kϕ(xi;μk;Σk)

属于不同分量的概率。这正是 GMM 可用于对数据进行聚类的方式。xi

当 K 的选择不太适合数据或子总体的形状不同时,K-Means 可能会遇到问题。scikit-learn 文档包含此类案例的有趣说明

在此处输入图像描述

GMM 协方差矩阵形状的选择会影响组件可以采用的形状,这里 scikit-learn 文档再次提供了说明

在此处输入图像描述

虽然选择不当的集群/组件数量也会影响 EM 拟合的 GMM,但以贝叶斯方式拟合的 GMM 可以在一定程度上抵抗这种影响,允许某些组件的混合权重(接近)为零。更多信息可以在这里找到。

参考

(1) 弗里德曼、杰罗姆、特雷弗·哈斯蒂和罗伯特·蒂布希拉尼。统计学习的要素。卷。1. 第 10 期。纽约:Springer 系列统计,2001。
(2) Bishop, Christopher M. 模式识别和机器学习。斯普林格,2006 年。

  1. 在聚类方面,该算法如何优于其他标准聚类算法(例如 -means)?K
  • k-means 非常适合大小大致为球形的集群。如果违反了这些条件,它可能会失败(尽管如果集群非常分开,它可能仍然有效)。GMM 可以适应具有更多形状和大小的集群。但是,这两种算法都不太适合具有弯曲/非凸簇的数据。

  • GMM 给出了点到簇的概率分配。这让我们可以量化不确定性。例如,如果一个点靠近两个集群之间的“边界”,通常最好知道它在这些集群中具有几乎相等的成员概率,而不是盲目地将其分配给最近的一个。

  • GMM 的概率公式让我们可以使用贝叶斯方法结合先验知识。例如,我们可能已经知道集群的形状或位置,或者它们包含多少个点。

  • 概率公式提供了一种处理缺失数据的方法(例如,使用通常用于拟合 GMM 的期望最大化算法)。即使我们没有在某些维度上观察到它的值,我们仍然可以对数据点进行聚类。而且,我们可以推断出这些缺失值可能是什么。

  1. ...这K意味着算法将数据划分为K具有明确集合成员的聚类,而高斯混合模型不会为每个数据点生成明确的集合成员。用 GMM 说一个数据点更接近另一个数据点的度量标准是什么?

GMM 给出了每个点属于每个集群的概率(见下文)。可以使用决策规则将这些概率转换为“硬分配”。例如,最简单的选择是将每个点分配给最可能的集群(即具有最高成员概率的集群)。

  1. 如何利用 GMM 产生的最终概率分布?假设我获得了我的最终概率分布f(x|w)在哪里w是权重,那又怎样?我获得了适合我的数据的概率分布x. 我能用它做什么?

这里只是几种可能性。你可以:

  • 执行聚类(包括硬分配,如上所述)。

  • 估算缺失值(如上)。

  • 检测异常(即概率密度低的点)。

  • 了解一些有关数据结构的信息。

  • 从模型中采样以生成新​​的合成数据点。

  1. 为了跟进我之前的观点,对于K意味着,最后我们得到一组K簇,我们可以将其表示为集合{S1,,SK}, 哪个是K事物。但是对于 GMM,我得到的只是一种分布f(x|w)=i=1NwiN(x|μi,Σi)这是1事物。这怎么能用于将事物聚类成K簇?

你写的表达式是观测数据的分布。然而,GMM 可以被认为是一个潜在的变量模型。每个数据点都与一个潜在变量相关联,该变量指示它属于哪个集群。在拟合 GMM 时,我们学习了这些潜在变量的分布。这给出了每个数据点是每个集群的成员的概率。