简介
本文章实现了Haojun Sun提出的一种计算高斯混合模型(GMM)重叠率的方法(论文:Measuring the component overlapping in the Gaussian mixture model)。这篇文论提出的方法可以计算任意两个混合高斯分布之间的重叠度。该方法可以用来评价GMM模型的好坏,我在我的论文中使用了这个算法,用来评价高斯混合模型聚类的可分性。
关于高斯混合模型(GMM)的相关概念可以参考另一篇博文:高斯混合模型及其EM算法的理解
使用GMM聚类或分析两个高斯混合分布的数据时,我们有时会希望两个高斯分布离得越远越好,这样表示数据才有可分性。但很多情况下两个高斯分布会有重叠。一维和二维的重叠情况如下所示(图片取自作者论文)。
我们可以计算一些指标来间接反映两个高斯分布的重叠情况。比如可以计算Mahalanobis距离,Bhattacharyya距离或Kullback-Leibler (KL)距离,可以衡量两个高斯分布的相似性。但是Mahalanobis距离预设两个分布具有相同的协方差,Bhattacharyya距离和KL距离都考虑了协方差,但却没有考虑高斯混合分布的混合系数(mixing coefficient)。而且KL距离对高维的正态分布没有解析解,计算复杂。
这篇论文提出的计算OLR的方法考虑了高斯混合分布中的所有参数,包括均值,协方差和混合系数。
OLR计算
假设有 n n n个 d d d维的样本 X = { X 1 , . . . , X n } \boldsymbol{X} = \{X_1,..., X_n\} X={
X1,...,Xn}. 其中 X i X_i Xi是一个 d d d维向量。一个混合高斯模型的pdf可以表示为:
p ( X ) = ∑ i = 1 k α i G i ( X , μ i , Σ i ) (1) p(X) = \sum_{i=1}^k \alpha_iG_i(X, \mu_i, \Sigma_i) \tag{1} p(X)=i=1∑kαiGi(X,μi,Σi)(1)
其中 α i \alpha_i αi是混合系数,满足 α i > 0 \alpha_i > 0 αi>0且 ∑ i = 1 k α i = 1 \sum_{i=1}^k\alpha_i=1 ∑i=1kαi=1.
G i ( X ) G_i(X) Gi(X)是一个 d d d维高斯分布,可以表示为下面的形式:
G i ( X ) = 1 ( 2 π ) d / 2 ∣ Σ i ∣ 1 / 2 exp ( 1 2 ( X − μ i ) T Σ i − 1 ( X − μ i ) ) (2) G_i(X) = \frac{1}{(2\pi)^{d/2} |\Sigma_i|^{1/2}} \exp \left( \frac{1}{2} (X-\mu_i)^T \Sigma_i^{-1}(X-\mu_i)\right) \tag{2} Gi(X)=(2π)d/2∣Σi∣1/21exp(21(X−μi)TΣi−1(X−μi))(2)
以二维高斯分布为例。当两个高斯分布有重叠时,会形成鞍状。如上图的d和e,二维高斯分布混合时会出现两个峰和一个鞍部;当两个分布几乎完全混合时,鞍部可能消失,但峰还在,此时明显的峰只有一个,如上图中的f。
论文中的两个高斯分布的OLR定义如下:
O L R ( G 1 , G 2 ) = { 1 if p ( X ) has one peak p ( X s a d d l e ) p ( X s u b m a x ) if p ( X ) has two peaks (3) OLR(G_1, G_2) = \begin{cases} 1 &\text{if $p(X)$ has one peak} \\ \frac{p(X_{saddle})}{p(X_{submax})} &\text{if $p(X)$ has two peaks} \end{cases} \tag{3} OLR(G1,G2)={
1p(Xsubmax