Appearance
第7章 贝叶斯分类器
🎯 学习目标
- 理解贝叶斯决策论的基本原理和最优性
- 掌握极大似然估计和最大后验估计的区别
- 理解朴素贝叶斯分类器的"朴素"假设及其影响
- 掌握拉普拉斯修正处理零概率问题
- 了解半朴素贝叶斯和贝叶斯网的基本思想
- 掌握 EM 算法处理含隐变量模型的基本思路
7.1 贝叶斯决策论
📐 贝叶斯定理
贝叶斯定理是贝叶斯学派的基石,描述了在获得新证据后如何更新我们的信念。
贝叶斯定理
| 符号 | 含义 |
|---|---|
| 后验概率 | |
| 似然 | |
| 先验概率 | |
| 证据因子 |
核心思想
后验概率 = (似然 × 先验) / 证据。通过观察数据
贝叶斯判定准则
为最小化总体风险,贝叶斯判定准则选�使后验概率最大的类别:
等价于:
✓ 优势
- 理论最优(最小化期望风险)
- 融合先验知识
- 可解释性强
⚠️ 挑战
- 需要知道先验概率
- 需要估计类条件概率
- 计算复杂度可能很高
7.2 极大似然估计
📊 参数估计
极大似然估计(MLE)是频率学派估计参数的标准方法:选择使观测数据出现概率最大的参数。
似然函数与对数似然
似然函数:
对数似然:
最大化得到参数估计:
💡 为什么用对数?
将连乘变为求和,便于计算和优化,且不改变最优解。
MLE vs MAP
| 极大似然估计 (MLE) | 最大后验估计 (MAP) | |
|---|---|---|
| 公式 | ||
| 学派 | 频率学派观点 | 贝叶斯学派观点 |
| 先验 | 不考虑先验知识 | 融合先验 |
| 适用 | 数据充足时效果好 | 数据稀少时更稳健 |
7.3 朴素贝叶斯分类器
🎭 "朴素"的假设
朴素贝叶斯分类器基于一个强假设:属性条件独立性假设。虽然这个假设在现实中往往不成立,但朴素贝叶斯在实践中表现出奇地好!
条件独立性假设
完整的类条件概率:
参数数量随维度指数增长!
通过朴素假设简化后:
参数数量线性增长!
✓ 为什么有效?
- 降低模型复杂度,避免过拟合
- 所需训练数据量大幅减少
- 训练和预测都非常快速
- 即使假设不完全成立,分类效果仍然不错
⚠️ 局限性
- 无法表达属性间的相关性
- 预测的概率值不够准确
- 特征高度相关时性能下降
拉普拉斯修正
当训练集中某个属性值在某个类别下从未出现时,会导致零概率问题:整个后验概率都会变成 0!
问题:如果某个
解决方案:拉普拉斯修正(加1平滑):
确保所有概率都非零。
朴素贝叶斯分类交互演示
经典的"打网球"问题:根据天气条件预测是否适合打网球,理解贝叶斯公式的计算过程。
测试样本
预测结果
最终预测
适合打球
训练数据集 (14 条)
| 天气 | 温度 | 湿度 | 风力 | 打球 |
|---|---|---|---|---|
| 晴 | 高 | 高 | 弱 | 否 |
| 晴 | 高 | 高 | 强 | 否 |
| 阴 | 高 | 高 | 弱 | 是 |
| 雨 | 适中 | 高 | 弱 | 是 |
| 雨 | 低 | 正常 | 弱 | 是 |
| 雨 | 低 | 正常 | 强 | 否 |
| 阴 | 低 | 正常 | 强 | 是 |
| 晴 | 适中 | 高 | 弱 | 否 |
| 晴 | 低 | 正常 | 弱 | 是 |
| 雨 | 适中 | 正常 | 弱 | 是 |
| 晴 | 适中 | 正常 | 强 | 是 |
| 阴 | 适中 | 高 | 强 | 是 |
| 阴 | 高 | 正常 | 弱 | 是 |
| 雨 | 适中 | 高 | 强 | 否 |
💡 朴素贝叶斯公式
P(c|x) = P(c) × ∏ᵢ P(xᵢ|c) / P(x)
- 条件独立假设:假设特征之间相互独立
- 拉普拉斯平滑:避免零概率问题,P(x|c) = (count + 1) / (total + N)
- 归一化:使后验概率和为1
7.4 半朴素贝叶斯分类器
🔓 放松独立性假设
半朴素贝叶斯分类器适当考虑一部分属性间的相互依赖信息,在模型复杂度和分类性能之间寻求平衡。
| 方法 | 全称 | 说明 |
|---|---|---|
| SPODE | Super-Parent ODE | 所有属性依赖于同一个超父属性 |
| TAN | Tree Augmented Naive Bayes | 属性间形成树状依赖结构 |
| AODE | Averaged ODE | 集成多个SPODE模型 |
核心思想
在朴素贝叶斯(完全独立)和贝叶斯网(任意依赖)之间找到平衡点。
7.5 贝叶斯网
🕸️ 概率图模型
贝叶斯网(Bayesian Network)借助有向无环图(DAG)来刻画属性之间的依赖关系,并使用条件概率表(CPT)来描述属性的联合概率分布。
贝叶斯网的组成
1. 结构(网络拓扑):
- 节点表示随机变量
- 有向边表示依赖关系
- 必须是有向无环图(DAG)
- 父节点影响子节点
2. 参数(CPT):
- 每个节点有条件概率表
- 根节点只有先验概率
- 通过数据学习参数
联合概率分解:
推断与学习
| 推断问题 | 学习问题 | |
|---|---|---|
| 目标 | 给定证据变量的观测值,计算查询变量的后验概率分布 | 从数据中学习贝叶斯网的结构和参数 |
| 方法 | 精确推断:变量消除;近似推断:吉布斯采样 | 参数学习:MLE/MAP;结构学习:评分搜索 |
7.6 EM 算法
🔄 处理隐变量的利器
EM 算法(Expectation-Maximization)是一种迭代优化算法,专门用于含隐变量(latent variable)的概率模型的参数估计。当数据不完整或存在未观测变量时,极大似然估计无法直接求解,EM 算法提供了一种优雅的解决方案。
为什么需要 EM 算法?
在很多实际问题中,观测数据
- 高斯混合模型(GMM):知道数据来自多个高斯分布的混合,但不知道每个样本具体来自哪个分布
- 缺失数据:部分属性值缺失
此时对数似然函数含有对隐变量的求和(或积分),难以直接优化:
对数内部的求和使得我们无法将对数直接作用到各个分量上,传统的 MLE 求导令其为零的方法失效了。
算法步骤
EM 算法通过交替执行两个步骤来迭代求解:
E 步(Expectation):基于当前参数
M 步(Maximization):最大化
重复 E 步和 M 步,直到参数收敛(即
💡 直观理解:"鸡生蛋,蛋生鸡"
以高斯混合模型为例理解 EM 算法的思路:
- 如果知道每个样本属于哪个高斯分布(隐变量已知),就能直接用 MLE 估计每个高斯的均值和方差 → 这就是 M 步
- 如果知道每个高斯分布的参数,就能计算每个样本属于各个高斯分布的概率 → 这就是 E 步
两者互相依赖,EM 算法的巧妙之处在于:先猜一个初始参数,然后交替进行"猜归属"和"更新参数",逐步逼近最优解。
EM 算法的一般形式
将 E 步和 M 步合并,EM 算法可以用一个统一的公式表达:
其中:
是 E 步计算的隐变量后验分布(基于当前参数) 是完整数据的对数似然 - 积分(或求和)对隐变量取期望,得到
函数 - M 步对
最大化该期望
📖 从 Jensen 不等式理解 EM
EM 算法的理论基础来自 Jensen 不等式。由于
右侧称为证据下界(ELBO)。当
应用示例:高斯混合模型(GMM)
高斯混合模型是 EM 算法最经典的应用。假设数据由
其中
隐变量
GMM 的 E 步:计算每个样本属于每个高斯分布的后验概率("责任"):
GMM 的 M 步:基于后验概率更新各高斯分布的参数:
💡 GMM 参数更新的直觉
- 均值
:所有样本的加权平均,权重为样本属于该分布的概率 - 协方差
:加权协方差矩阵 - 混合系数
:所有样本对该分布的平均归属概率
本质上就是"软分配"——每个样本以不同概率被分配到各个高斯分布,然后按权重统计每个分布的参数。
收敛性
⚠️ 收敛保证与局限
- ✅ 似然单调递增:每次迭代后
,算法一定会收敛 - ⚠️ 局部最优:EM 算法只能保证收敛到局部最优解,不保证全局最优
- 💡 实践建议:多次随机初始化,取似然最大的结果;或使用 K-Means 等方法提供较好的初始值
📝 本章小结
总结
- ✅ 贝叶斯定理提供了从先验概率和似然得到后验概率的原理性框架
- ✅ 贝叶斯判定准则在理论上是最优的,最小化期望风险
- ✅ 朴素贝叶斯通过属性条件独立性假设大幅简化计算,虽然假设强但实际效果好
- ✅ 拉普拉斯修正是处理零概率问题的标准方法,确保所有概率非零
- ✅ 半朴素贝叶斯和贝叶斯网在模型复杂度和性能之间寻求更好的平衡
- ✅ EM 算法通过交替执行 E 步和 M 步,解决含隐变量模型的参数估计问题
- ✅ 贝叶斯方法特别适合小样本场景和需要融合先验知识的情况