本文是周志华《机器学习》(西瓜书)第7章 贝叶斯分类器(Bayesian)的学习笔记,涵盖本章所有核心知识点,配有通俗类比与公式推导。

1贝叶斯决策论

贝叶斯决策论是概率框架下实施决策的基本方法。对于分类任务,在所有相关概率已知的理想情况下,最优分类器由贝叶斯公式给出:

📐 公式

P(cx)=P(xc)P(c)P(x) P(c \mid \boldsymbol{x}) = \frac{P(\boldsymbol{x} \mid c) P(c)}{P(\boldsymbol{x})}
  • P(c)P(c):**先验概率**(在不知道样本长相的时候,猜它是 cc 类的概率)
  • P(xc)P(\boldsymbol{x}|c):**类条件概率**(也叫"似然",已知是 cc 类,样本长 x\boldsymbol{x} 样的概率)
  • P(cx)P(c|\boldsymbol{x}):**后验概率**(看到样本 x\boldsymbol{x} 后,它是 cc 类的更新后的概率)

贝叶斯最优分类器选择后验概率最大的类:

📐 公式

h(x)=argmaxcYP(cx) h^*(\boldsymbol{x}) = \arg\max_{c \in \mathcal{Y} } P(c \mid \boldsymbol{x})

最小风险贝叶斯决策

引入决策风险后,选择条件风险最小的类:

📐 公式

R(cix)=j=1NλijP(cjx) R(c_i \mid \boldsymbol{x}) = \sum_{j=1}^N \lambda_{ij} P(c_j \mid \boldsymbol{x})

其中 λij\lambda_{ij} 是将 cjc_j 误判为 cic_i 的损失。目标是 argminR(cix)\arg\min R(c_i|\boldsymbol{x})

🍉 通俗类比

贝叶斯决策像医生看病。来了一个病人(样本 x\boldsymbol{x}),医生脑子里先有一个”这病常见不常见”的先验(P(c)P(c)),观察症状后更新为后验概率(P(cx)P(c|\boldsymbol{x})),最终选可能性最大的那个诊断。如果误诊某病的代价特别大(比如漏诊癌症),则引入风险权重(最小风险决策)。

2极大似然估计

现实中 P(xc)P(\boldsymbol{x}|c) 未知。假设它服从某种参数化形式(如正态分布),用训练数据来估计参数 θ\theta

极大似然估计(MLE):选择使得观测数据出现概率最大的参数:

📐 公式

θ^MLE=argmaxθP(Dcθ)=argmaxθxDcP(xθ,c) \hat{\theta}_{MLE} = \arg\max_\theta P(D_c \mid \theta) = \arg\max_\theta \prod_{\boldsymbol{x}\in D_c} P(\boldsymbol{x} \mid \theta, c)

为计算方便,取对数:

📐 公式

LL(θ)=xDclnP(xθ,c) LL(\theta) = \sum_{\boldsymbol{x}\in D_c} \ln P(\boldsymbol{x} \mid \theta, c)

⚠️ 注意事项

MLE 严重依赖所假设的概率分布形式。如果假设正态分布而实际数据不是正态分布,MLE 的结果就会偏差很大。这就是所谓的**”模型假设偏误”**。

3朴素贝叶斯分类器

直接估计 P(xc)=P(x1,x2,,xdc)P(\boldsymbol{x}|c) = P(x_1, x_2, \dots, x_d | c) 需要估计指数级参数2d2^d 量级)。

属性条件独立性假设(naive 的真谛):

📐 公式

P(xc)=i=1dP(xic) P(\boldsymbol{x} \mid c) = \prod_{i=1}^d P(x_i \mid c)

于是决策简化为:

📐 公式

hnb(x)=argmaxcP(c)i=1dP(xic) h_{nb}(\boldsymbol{x}) = \arg\max_{c} P(c) \prod_{i=1}^d P(x_i \mid c)

平滑:拉普拉斯修正

如果某属性值在训练集中从未出现,P(xic)=0\prod P(x_i|c)=0 会导致偏差。用拉普拉斯修正:

📐 公式

P^(c)=Dc+1D+N,P^(xic)=Dc,xi+1Dc+Ni \hat{P}(c) = \frac{|D_c| + 1}{|D| + N},\quad \hat{P}(x_i \mid c) = \frac{|D_{c,x_i}| + 1}{|D_c| + N_i}

🍉 通俗类比

朴素贝叶斯就像相亲评估——假设身高、长相、学历、收入相互独立(虽然现实不是这样),每个特征单独打分,乘起来就是总分。虽然独立性假设很”天真”(naive),但在很多实际场景中效果出乎意料地好。

💡 技巧提示

朴素贝叶斯之所以”naive”还能好用,因为它不要求估计准确的后验概率,只需要后验概率的相对顺序正确。即使概率估计有偏,只要最大值对应的类是对的就行。

4半朴素贝叶斯分类器

放松完全独立假设,允许每个属性最多依赖一个父属性(ODE: One-Dependent Estimator)。

方法 结构 如何选父属性
SPODE 所有属性依赖同一个超父 由专家指定超父
TAN 属性构成最大带权生成树 条件互信息最大
AODE 每个属性轮流当超父,集成 对多个 SPODE 加权平均
超父 属性1 属性2 属性3 属性4 属性 (Pai) + 父 (PAi)

5贝叶斯网

用**有向无环图(DAG)**刻画属性间的依赖关系,是半朴素贝叶斯向完全概率图模型的推广。

📐 公式

P(x1,,xd)=i=1dP(xiπi) P(x_1,\dots,x_d) = \prod_{i=1}^d P(x_i \mid \pi_i)

其中 πi\pi_i 是节点 xix_i 的父节点集合。

三个基本结构

结构 形式 独立性
同父结构 x1x3x2x_1 \leftarrow x_3 \rightarrow x_2 已知 x3x_3x1x2x_1 \perp x_2
V 型结构 x1x3x2x_1 \rightarrow x_3 \leftarrow x_2 x3x_3 未知时 x1x2x_1 \perp x_2;已知 x3x_3 时 反而依赖
顺序结构 x1x3x2x_1 \rightarrow x_3 \rightarrow x_2 已知 x3x_3x1x2x_1 \perp x_2

⚠️ 注意事项

V 型结构是反直觉的x1x3x2x_1 \rightarrow x_3 \leftarrow x_2,当 x3x_3 未知时 x1x_1x2x_2 独立,但一旦知道了 x3x_3(孩子),两个原本独立的父母反而变得相关了。这叫做”解释消除”(explaining away)。

学习与推断

  • 结构学习:搜索 + 打分(BIC、AIC、MDL)
  • 参数学习:给定结构,用 MLE 或贝叶斯估计训练条件概率表
  • 推断:精确推断(变量消去、团树)或近似推断(MCMC、变分)

💡 技巧提示

贝叶斯网的学习是 NP 难的,因为可能的结构数量随节点数超指数增长。

6EM 算法

当存在隐变量(未观测变量)时,极大似然估计不再有闭式解。EM 算法提供一个迭代求解框架。

算法:EM(Expectation-Maximization)
输入:观测变量 X,隐变量 Z,联合分布 P(X,Z|θ)
输出:模型参数 θ

E 步(期望):以当前参数 θ^t 为基础,计算隐变量的后验分布
Q(θ | θ^t) = E_{Z|X,θ^t}[ln P(X,Z|θ)]

M 步(最大化):最大化 Q 函数,更新参数
θ^{t+1} = arg max_θ Q(θ | θ^t)

反复迭代直到收敛。

🍉 通俗类比

EM 算法就像两人分账。你不知道谁赚了多少(隐变量未知),但你知道总账(观测数据)。先随便猜一个分成比例(E 步),根据这个比例重新算每个人的预期收入并更新分成(M 步),反复迭代直到双方满意。

EM 在高斯混合聚类中的应用

📐 公式

E 步:γji=αip(xjμi,Σi)k=1Kαkp(xjμk,Σk)\gamma_{ji} = \frac{\alpha_i \cdot p(\boldsymbol{x}_j \mid \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i)}{\sum_{k=1}^K \alpha_k \cdot p(\boldsymbol{x}_j \mid \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)}(第 j 个样本属于第 i 个分量的概率)

M 步:μi=jγjixjjγji,  Σi=jγji(xjμi)(xjμi)jγji,  αi=1mjγji\boldsymbol{\mu}_i = \frac{\sum_j \gamma_{ji} \boldsymbol{x}_j}{\sum_j \gamma_{ji} },\; \boldsymbol{\Sigma}_i = \frac{\sum_j \gamma_{ji} (\boldsymbol{x}_j-\boldsymbol{\mu}_i)(\boldsymbol{x}_j-\boldsymbol{\mu}_i)^\top}{\sum_j \gamma_{ji} },\; \alpha_i = \frac{1}{m}\sum_j \gamma_{ji}

7本章总结

贝叶斯分类器进化之路 朴素贝叶斯(全独立) 半朴素(ODE 依赖) 贝叶斯网(任意 DAG) 所有方法最终依赖 P(c|x) ∝ P(c)·P(x|c) 的贝叶斯公式 隐变量问题 → EM 算法(迭代求解)

📝 考试高频考点

  • 贝叶斯公式:先验 × 似然 / 证据 = 后验
  • 朴素贝叶斯的独立性假设:为什么它”错误”却又”有效”
  • 拉普拉斯修正:防止零概率的平滑技巧
  • 半朴素贝叶斯的三种结构:SPODE / TAN / AODE
  • 贝叶斯网的三个基本结构:尤其是 V 型结构的反直觉独立性
  • EM 算法的 E 步 M 步:特别是 GMM 中 E/M 步的具体公式