← 返回Book 7目录

第21章:高斯混合模型

GMM - 多个高斯分布的组合

用多个高斯分布来估计样本数据的分布

本章概要

GMM(高斯混合模型):一种概率模型,假设所有数据点由有限个参数未知的高斯分布混合生成。它是K-Means聚类的推广形式。

与K-Means的核心区别:K-Means只使用质心并最小化SSE;GMM使用质心和协方差矩阵来最大化对数似然函数。GMM可以描述不同大小、形状和方向的簇。

贝叶斯视角:GMM与贝叶斯分类和高斯判别分析密切相关。它使用贝叶斯定理计算后验概率p(Ck|x)进行软聚类。

21.1 高斯混合模型原理

🎯 核心思想

GMM使用多个高斯分布来估计样本数据的分布。 每个高斯分布称为一个分量(component),描述一个簇。

一维情况: fₓ(x|θ) = Σₖ αₖ · N(μₖ, σₖ²)
多维情况: fₓ(x|θ) = Σₖ αₖ · N(μₖ, Σₖ)
• αₖ = 先验概率(混合系数)
• μₖ = 均值向量(质心)
• Σₖ = 协方差矩阵(形状和方向)
🎨

高斯混合模型可视化

用多个高斯分布的叠加描述数据分布

概率密度函数 (PDF)

345678x (特征值)概率密度

参数说明

分量 C₁
先验 α1
0.33
均值 μ1
4.5
标准差 σ1
0.40
贡献:α1 × N(μ1, σ²1) 描述第1个簇的数据分布
分量 C₂
先验 α2
0.33
均值 μ2
5.5
标准差 σ2
0.50
贡献:α2 × N(μ2, σ²2) 描述第2个簇的数据分布
分量 C₃
先验 α3
0.34
均值 μ3
6.8
标准差 σ3
0.35
贡献:α3 × N(μ3, σ²3) 描述第3个簇的数据分布
🔑 核心思想
贝叶斯视角:
fₓ(x) = Σₖ p(Cₖ) · f(x|Cₖ)
αₖ = 先验概率:
样本属于簇Cₖ的概率
N(μₖ, σₖ) = 似然:
在簇Cₖ内的条件概率分布
📊 步骤说明
  1. 添加第1个高斯分量
  2. 添加第2个高斯分量
  3. 添加第3个高斯分量
  4. 叠加得到混合分布

💡 GMM vs K-Means:K-Means只用质心μₖ,假设各簇大小形状相同(球形); GMM用μₖ和σₖ(或Σₖ),可以描述不同大小、形状、方向的簇。 GMM是K-Means的概率化推广,通过EM算法迭代优化参数θ, 最大化对数似然函数,而非最小化SSE。

📐 贝叶斯框架

全概率定理:
fₓ(x) = Σₖ p(Cₖ) · f(x|Cₖ)
贝叶斯定理:
联合概率 = 先验 × 似然
f(Cₖ, x) = p(Cₖ) · f(x|Cₖ)
后验概率:
p(Cₖ|x) = [p(Cₖ) · f(x|Cₖ)] / Σⱼ[p(Cⱼ) · f(x|Cⱼ)]

对于无监督学习,样本标签未知。 在GMM迭代过程中,似然f(x|Cₖ)和先验p(Cₖ)都会不断估计和更新,直到收敛。

📈

后验概率曲面

可视化贝叶斯决策边界

贝叶斯定理:p(Cₖ|x) = [p(Cₖ) · f(x|Cₖ)] / Σⱼ[p(Cⱼ) · f(x|Cⱼ)]

选择一个簇

μ1μ2μ3x₁x₂

贝叶斯决策规则

🎯 决策准则
最大后验概率 (MAP):
ŷ = argmaxk p(Ck|x)

将样本x分配到后验概率最大的簇。 比较p(C₁|x)、p(C₂|x)、p(C₃|x),选最大者。

簇 C₁
质心: μ1 = (5.5, 3)
后验概率:
p(C1|x) = [α1 · N(x|μ1, Σ1)] / f(x)
• α1 = 先验概率
• N(x|μ1, Σ1) = 似然函数
• f(x) = 证据因子(归一化)
簇 C₂
质心: μ2 = (6.5, 2.8)
后验概率:
p(C2|x) = [α2 · N(x|μ2, Σ2)] / f(x)
• α2 = 先验概率
• N(x|μ2, Σ2) = 似然函数
• f(x) = 证据因子(归一化)
簇 C₃
质心: μ3 = (5, 3.5)
后验概率:
p(C3|x) = [α3 · N(x|μ3, Σ3)] / f(x)
• α3 = 先验概率
• N(x|μ3, Σ3) = 似然函数
• f(x) = 证据因子(归一化)
🔍 决策边界
定义:
p(Ci|x) = p(Cj|x) 的点集
• 边界上的点对两个簇的后验概率相等
• 不同协方差类型产生不同边界形状
• 边界随EM迭代不断调整
💡 与K-Means对比
K-Means:
硬分类,只看到距离最近的质心
GMM:
软分类,计算对所有簇的概率
GMM提供更丰富的信息,可用于密度估计、异常检测等任务

📈 后验概率的意义:后验概率p(Cₖ|x)表示"在观测到样本x的情况下,x属于簇Cₖ的概率"。 它综合了先验知识p(Cₖ)和数据证据f(x|Cₖ)。 后验概率高的区域形成各簇的"势力范围",边界处概率相等。 EM算法不断更新参数θ,使后验概率分布更准确地反映数据的真实结构。

21.2 四种协方差矩阵类型

🔍 协方差矩阵决定高斯形状

多元高斯分布f(x|Cₖ) = N(μₖ, Σₖ)由协方差矩阵Σₖ决定。 sklearn.mixture支持四种协方差类型,具有不同的假设和决策边界。

tied(绑定):所有分量共享一个Σ
→ 线性决策边界
spherical(球形):Σₖ = σₖ²I(圆形)
→ 圆弧边界
diag(对角):Σₖ对角矩阵(轴对齐)
→ 轴对齐二次曲线边界
full(完全):Σₖ无限制
→ 任意二次曲线边界
📊

四类协方差矩阵对比

不同协方差假设产生不同的决策边界

GMM聚类可视化 - Full (完全)

4.55.05.56.06.57.02.02.53.03.54.0Sepal length (cm)Sepal width (cm)μ1μ2μ3

参数特性

Full (完全)
协方差矩阵:
Σₖ 无限制
等高线形状:
任意椭圆(各簇不同)
决策边界:
任意圆锥曲线
对应GDA:
第六类GDA
🔍 详细解释
full:Σₖ无限制,完全自由
• 等高线为任意椭圆
• 决策边界为任意圆锥曲线
• 参数最多,灵活性最强
📈 复杂度对比
tied:
D(D+1)/2
spherical:
K
diag:
K×D
full:
K×D(D+1)/2

K=簇数, D=特征维度。参数越多,模型越灵活,但计算量越大。

⚖️ 选择建议
• tied:簇形状相似,样本量小
• spherical:簇近似球形,计算效率优先
• diag:特征独立,中等复杂度
• full:簇形状差异大,样本量充足

🎯 K-Means是GMM特例:K-Means相当于spherical且σ₁=σ₂=σ₃的极限情况。 GMM通过不同协方差假设,可以适应各种簇形状:从球形到任意椭圆。 选择合适的协方差类型,需要在模型灵活性和计算复杂度之间权衡, 通常用AIC/BIC准则进行选择。

💡 K-Means是GMM的特例

K-Means可以看作GMM的特例,所有簇共享相同的对角协方差矩阵且对角元素相等:Σₖ = σ²I(对所有k)。 这意味着所有簇都是具有相同半径的球形。GMM通过允许不同的协方差矩阵来推广这一点,使得簇可以具有不同的大小、形状和方向。

21.3 选择分量数量

📊 AIC和BIC准则

与K-Means类似,GMM需要指定分量数量K。 使用信息准则AIC和BIC来选择最优的K和协方差类型。

AIC(赤池信息准则):
AIC = -2ln(L) + 2K
惩罚较小,倾向复杂模型
BIC(贝叶斯信息准则):
BIC = -2ln(L) + K·ln(n)
惩罚较大,倾向简单模型

L = 似然函数,K = 参数数量,n = 样本量。 两者都遵循越小越好的原则。BIC惩罚随样本量增长,对过拟合更保守。

📉

AIC/BIC模型选择

确定最优分量数K和协方差类型

公式:
AIC = -2ln(L) + 2K
L=似然函数,K=参数数量
惩罚项: 2K

AIC值对比(越小越好)

K=1K=2K=3K=4K=5K=638004200460050005400分量数量 KAIC最优SphericalTiedDiagFull

模型评分详情

✨ 最优模型
协方差类型
Spherical
分量数K
3
AIC
4028.8
BIC
4075.9
📊 评分排行
#1Spherical, K=3
4028.8👑
#2Diag, K=3
4107.4
#3Tied, K=3
4240.1
#4Spherical, K=2
4273.4
#5Spherical, K=4
4279.7
#6Diag, K=2
4369.7
#7Full, K=3
4399.5
#8Diag, K=4
4406.7
#9Tied, K=4
4428.9
#10Tied, K=2
4482.7
⚖️ AIC vs BIC
AIC (赤池信息量准则):
惩罚项2K较小,倾向选择复杂模型
BIC (贝叶斯信息准则):
惩罚项K·ln(n)更大,倾向简单模型
• 样本量n越大,BIC惩罚越强
• BIC更保守,防止过拟合
• 两者都是"越小越好"
🎯 选择策略
1. 观察曲线拐点:
类似肘部法则,找到AIC下降趋缓的位置
2. 对比不同协方差:
在相同K下,选择AIC最小的协方差类型
3. 平衡复杂度:
参数多的模型灵活但易过拟合,需要惩罚项约束
当前最优:Spherical + K=3

📐 信息准则的作用:AIC和BIC都基于最大似然估计,同时考虑模型拟合度(-2ln L)和复杂度惩罚。 似然函数L越大,模型拟合越好,-2ln L越小;但参数越多,惩罚项越大。 两者权衡找到最优模型。对于GMM,需要同时选择分量数K和协方差类型, AIC/BIC提供了系统的比较框架。通常BIC选出的模型更简洁,AIC更灵活。

21.4 硬聚类 vs 软聚类

🎭 分类中的不确定性

后验概率p(Cₖ|x)等同于隶属度分数。 硬聚类分配明确标签;软聚类为不确定样本设置缓冲区。

硬聚类:
ŷ = argmax p(Cₖ|x)
在p = 0.5处有明确边界
软聚类:
if p(Cₖ|x) > 阈值
不确定带 [0.3, 0.7]
🎭

软聚类 vs 硬聚类

决策边界与不确定性区域

225
C₁簇样本
225
C₂簇样本

散点图可视化

x₁x₂μ₁μ₂

成员值分布

样本索引(按p(C₁|x)排序)p(C₁|x)0.00.20.40.60.81.00.5
🔵 硬聚类 (Hard Clustering)
决策规则:
argmaxk p(Ck|x)
• 每个样本明确分配到一个簇
• 决策边界清晰:p(C₁|x) = 0.5
• 类似K-Means的硬分类
• 不保留不确定性信息
适用场景:
需要明确分类标签的应用
🟣 软聚类 (Soft Clustering)
决策规则:
if p(Ck|x) > threshold: assign to Ck
else: uncertain
• 设置不确定性缓冲带
• 保留分类不确定性信息
• 决策带宽度可调节
• 更符合真实数据的模糊性
适用场景:
异常检测、主动学习、置信度要求高的应用

🎭 软聚类的优势:GMM天然支持软聚类,因为它输出的是后验概率p(Cₖ|x)而非硬标签。 当后验概率接近0.5时,说明样本在两簇的边界附近,分类不确定性高。 软聚类通过设置阈值(如[0.3, 0.7]),将这部分样本标记为"不确定", 避免强行分类带来的错误。这在医疗诊断、金融风控等对错误敏感的领域特别重要。 不确定区域的样本可以人工审核或收集更多特征后再决策。

⚡ 软聚类的应用

• 异常检测:不确定带中的样本可能是离群值
• 主动学习:为不确定样本请求标签
• 医疗诊断:标记模糊病例供专家审查
• 金融风控:对边界交易进行更严格的审查

软聚类保留了分类不确定性信息, 避免强制分类错误。在对错误敏感的领域尤为重要。

本章总结

核心要点

🎯 核心概念

  • • GMM:高斯分布的混合
  • • 分量:每个高斯描述一个簇
  • • 参数θ:{αₖ, μₖ, Σₖ},k=1...K
  • • 贝叶斯视角:先验 × 似然 = 联合概率
  • • 后验:p(Cₖ|x)用于分类
  • • EM算法:迭代参数优化

📐 关键公式

混合模型:
fₓ(x|θ) = Σₖ αₖ · N(x|μₖ, Σₖ)
后验概率:
p(Cₖ|x) = αₖ·f(x|Cₖ) / Σⱼ αⱼ·f(x|Cⱼ)
AIC: -2ln(L) + 2K
BIC: -2ln(L) + K·ln(n)

🔗 与下一章的联系

本章介绍了GMM,但没有详细说明参数θ如何迭代优化。第22章将重点讲解EM(期望最大化)算法, 解释E步骤(计算后验)和M步骤(更新参数)。 EM是一个通用的优化框架,不仅适用于GMM,还适用于隐马尔可夫模型和缺失数据问题。

🎨
5个交互组件
混合、协方差、后验、AIC/BIC、软聚类
📊
4种协方差类型
绑定、球形、对角、完全
🔍
2个选择准则
AIC和BIC用于模型选择