Skip to content

高斯混合模型

高斯混合模型(Gaussian Mixture Model, GMM)用多个高斯分布的加权和描述复杂数据分布。它常用于聚类、密度估计和异常检测。

概念详解

p(x)=k=1KπkN(x|μk,Σk)

其中 πk 是混合系数,满足 kπk=1μk 是均值;Σk 是协方差矩阵。

数学公式及其推导

多元高斯分布为:

N(x|μ,Σ)=1(2π)d/2|Σ|1/2exp[12(xμ)TΣ1(xμ)]

E 步计算后验责任度:

\gamma_{ik}= \frac{\pi_k\mathcal{N}(x_i|\mu_k,\Sigma_k)} \sum_{j=1}^{K}\pi_j\mathcal{N}(x_i|\mu_j,\Sigma_j)}

M 步更新参数:

Nk=iγik,πk=NkNμk=1NkiγikxiΣk=1Nkiγik(xiμk)(xiμk)T

应用代码

python
from sklearn.datasets import make_blobs
from sklearn.mixture import GaussianMixture

X, _ = make_blobs(n_samples=300, centers=[[-2, -2], [2, 2], [0, 4]], random_state=0)

gmm = GaussianMixture(n_components=3, covariance_type="full", random_state=0)
gmm.fit(X)

print(gmm.means_)
print(gmm.predict_proba(X[:5]))

小结

GMM 可以看作软聚类模型:一个样本不是绝对属于某个簇,而是以不同概率属于多个高斯成分。它的训练通常依赖 EM 算法。