高斯混合模型(Gaussian Mixture Model, GMM)是一种概率模型,假设数据由多个高斯分布混合生成,常用于聚类和密度估计。
- 软聚类:提供样本属于各个簇的概率
- 灵活形状:可以拟合椭圆形的簇
- 概率模型:提供数据的概率密度估计
- 单变量:正态分布 N(μ, σ²)
- 多变量:多元正态分布 N(μ, Σ)
- 参数:均值向量 μ,协方差矩阵 Σ
- 每个高斯成分的权重 π_k
- 所有权重之和为1
- 表示各成分的先验概率
- 样本属于各成分的后验概率
- 用于软分配样本到不同簇
- E步:计算责任度
- M步:更新模型参数
- 迭代直到收敛
- 数据聚类
- 密度估计
- 异常检测
- 图像分割
- 语音识别
GMM 的概率密度函数为:
p(x) = Σ π_k * N(x | μ_k, Σ_k)
其中:
- K 为高斯成分数量
- π_k 为第 k 个成分的混合权重,满足 Σπ_k = 1
- N(x | μ_k, Σ_k) 为第 k 个高斯分布
使用 scikit-learn 拟合高斯混合模型:
from sklearn.mixture import GaussianMixture
import numpy as np
# 生成示例数据
X = np.random.randn(300, 2)
# 创建并训练模型
gmm = GaussianMixture(n_components=3, random_state=0)
gmm.fit(X)
# 预测类别
labels = gmm.predict(X)
print("各成分权重:", gmm.weights_)