高斯混合模型(
Gaussian Mixed Model
,
GMM
)也是一种常见的聚类算法,与K
均值算法类似,同样使用了
EM
算法进行迭代计算。高斯混合模型假设每个簇的数据都是符合高斯分布(又叫正态分布)的,当前数据呈现的分布就是各个簇的高斯分布叠加在一起的结果。
图
5.6是一个数据分布的样例,如果只用一个高斯分布来拟合图中的数据,图中所示的椭圆即为高斯分布的二倍标准差所对应的椭圆。直观来说,图中的数据明显分为两簇,因此只用一个高斯分布来拟和是不太合理的,需要推广到用多个高斯分布的叠加来对数据进行拟合。图5.7是用两个高斯分布的叠加来拟合得到的结果。这就引出了高斯混合模型,即用多个高斯分布函数的线形组合来对数据分布进行拟合。理论上,高斯混合模型可以拟合出任意类型的分布。
问题 高斯混合模型的核心思想是什么?它是如何迭代计算的?
高斯混合模型的核心思想是:假设数据可以看作从多个高斯分布中生成出来的。在该假设下,每个单独的分模型都是标准高斯模型,其均值μ
i
和方差
Σ
i是待估计的参数。此外,每个分模型都还有一个参数πi,可以理解为权重或生成数据的概率。高斯混合模型的公式为
高斯混合模型是一个生成式模型。可以这样理解数据的生成过程,假设一个最简单的情况,即只有两个一维标准高斯分布的分模型N
(0,1)
和
N
(5,1)
,其权重分别为0.7
和
0.3
。那么,在生成第一个数据点时,先按照权重的比例,随机选择一个分布,比如选择第一个高斯分布,接着从N
(0,1)
中生成一个点,如
−0.5
,便是第一个数据点。在生成第二个数据点时,随机选择第二个高斯分布N
(5,1)
,生成了第二个点4.7
。如此循环执行,便生成出了所有的数据点。
然而,通常我们并不能直接得到高斯混合模型的参数,而是观察到了一系列数据点,给出一个类别的数量K
后,希望求得最佳的
K
个高斯分模型。因此,高斯混合模型的计算,便成了最佳的均值μ
,方差
Σ
、权重
π
的寻找,这类问题通常通过最大似然估计来求解。遗憾的是,此问题中直接使用最大似然估计,得到的是一个复杂的非凸函数,目标函数是和的对数,难以展开和对其求偏导。
高斯混合模型与
K
均值算法的相同点是,它们都是可用于聚类的算法;都需要指定K
值;都是使用
EM
算法来求解;都往往只能收敛于局部最优。而它相比于
K均值算法的优点是,可以给出一个样本属于某类的概率是多少;不仅仅可以用于聚类,还可以用于概率密度的估计;并且可以用于生成新的样本点。