7.1 贝叶斯决策论
贝叶斯决策论是一种基于概率的方法,用于在分类任务中根据已知的概率信息和误判损失选择最优类别。它的核心思想是通过最小化决策风险来达到最佳决策效果。
1. 基本概念
1.1 类别标记
- 假设有 N 种可能的类别,记为
Y={c1,c2,…,cN}。
1.2 误判损失
- 定义 λij 为将真实类别为 cj 的样本误分为 ci 时的损失。
1.3 后验概率
- P(ci∣x) 表示在给定样本 x 的情况下,样本属于类别 ci 的概率。
2. 条件风险与总体风险
2.1 条件风险
2.2 总体风险
3. 贝叶斯判定准则
4. 最小化分类错误率的情况
4.1 错误率损失函数
- 当目标是最小化分类错误率时,误判损失可定义为:
λij={0,1,若 i=j若 i=j
这表示:
- 如果预测正确(即 i=j),损失为 0;
- 如果预测错误(即 i=j),损失为 1。
4.2 条件风险的简化
对于某一候选类别 c(我们可以把 c 当作 ci),代入损失函数后,条件风险变为:
R(c∣x)=j=1∑NλijP(cj∣x)
注意到:
- 当 j=i(即 j=c)时,λii=0,对应项为 0×P(c∣x)=0;
- 当 j=i时,λij=1,对应项为 1×P(cj∣x)=P(cj∣x)。
因此,上式可以写成:
R(c∣x)=j=c∑P(cj∣x)
由于所有类别的后验概率之和为 1,即
j=1∑NP(cj∣x)=1
那么可以将上式拆分为:
j=c∑P(cj∣x)=1−P(c∣x)
因此,我们得到条件风险的简化形式:
R(c∣x)=1−P(c∣x)
4.3 最优决策
贝叶斯决策准则要求在每个样本 x 上选择使条件风险最小的类别:
h∗(x)=c∈YargminR(c∣x)
将我们推导出的 R(c∣x)=1−P(c∣x) 代入,可以发现最小化 R(c∣x) 等价于最大化 P(c∣x):
h∗(x)=c∈YargmaxP(c∣x)
这就是“选择后验概率最大的类别”这一结论的来源。
5. 实际应用中的挑战与解决方法
5.1 后验概率的估计难题
- 理论上需要知道后验概率 P(c∣x),但在实际中直接获得这一概率往往十分困难。
5.2 两种主要策略
- 判别式模型
- 方法: 直接建立 P(c∣x) 的模型。
- 代表模型: 支持向量机、神经网络等。
- 生成式模型
- 方法: 先建立联合概率 P(x,c),再利用贝叶斯定理推导后验概率。
- 代表模型: 朴素贝叶斯分类器等。
6. 生成式模型中的贝叶斯定理
6.1 各部分解释
-
类先验概率 P(c): 表示样本在整个样本空间中属于类别 c 的比例,通常通过训练数据中各类样本的频率估计。
-
类条件概率 P(x∣c): 表示在类别 c 下样本 x 出现的概率。
- 由于涉及多个属性的联合概率,当特征维度较高时,直接估计可能遇到困难。
- 常用方法包括假设特征分布(如高斯分布)或采用非参数估计方法。
-
证据 P(x):
用于归一化,使所有类别的后验概率和为 1。对于给定样本 x,该项与类别无关。
7. 总结
贝叶斯决策论为分类任务提供了一个系统的方法,通过考虑样本在各类别下的后验概率和相应的误判损失,实现了风险最小化。
- 理想情况: 当所有相关概率已知时,通过贝叶斯判定准则可以选择最优类别。
- 实际问题: 直接获得后验概率通常较难,机器学习中常通过判别式和生成式模型来估计这些概率,从而实现近似最优分类。
7.2 极大似然估计
极大似然估计(Maximum Likelihood Estimation,简称MLE)是一种通过已知的概率模型形式,根据观测到的数据来估计模型参数的方法。下面用通俗易懂的语言解释这个过程:
1. 基本思路
2. 似然函数
-
定义似然函数
假设对类别 的样本集合记为 ,我们认为这些样本都是独立同分布的,根据独立性假设,整个数据集 Dc 在参数 θc 下出现的联合概率(似然)就是每个样本出现概率的乘积:
P(Dc∣θc)=x∈Dc∏P(x∣θc)
这个乘积称为似然函数,反映了在给定参数下观测到数据的“可能性”。
-
为什么用对数似然
由于多个小概率相乘容易导致数值下溢(结果非常小),我们通常对似然函数取对数,把乘法变成加法:
LL(θc)=logP(Dc∣θc)=x∈Dc∑logP(x∣θc)
这样不仅计算更稳定,且求和更容易处理。
3. 参数估计
-
求最优参数
我们的目标就是找到一组参数 θ^c,使得对数似然函数 LL(θc) 达到最大值:
θ^c=θcargmaxLL(θc)
这意味着在所有可能的参数中,我们选择那个使得训练数据出现的可能性最大的参数值。
-
高斯分布的例子
如果我们假设连续属性数据服从高斯分布,即
p(x∣c)∼N(μc,σc2)
那么通过极大似然估计,我们可以得到:
- 均值的估计:
μ^c=∣Dc∣1x∈Dc∑x
也就是所有样本的平均值。
- 方差的估计:
σ^c2=∣Dc∣1x∈Dc∑(x−μ^c)(x−μ^c)T
也就是样本与均值差值的平方的平均值。
4. 注意事项
7.3 朴素贝叶斯原理
1.朴素贝叶斯分类器原理
在实际应用中,利用贝叶斯公式估计后验概率 P(c∣x) 面临一个主要困难:类条件概率P(x∣c)是所有属性上的联合概率,很难从有限的训练样本直接估计得到。为解决这个问题,朴素贝叶斯分类器引入了“属性条件独立性假设”,即对于已知类别,假设所有属性相互独立,每个属性独立地对分类结果产生影响。
基于这一假设,贝叶斯公式
P(c∣x)=P(x)P(c)P(x∣c)
可改写为
P(c∣x)=P(x)P(c)i=1∏dP(xi∣c)
其中 d 为属性数目,xi 为 x 在第 i 个属性上的取值( xi 实际上是一个“属性-值”对,例如“色泽=青绿”)。由于对于所有类别P(x) 相同,根据贝叶斯判定准则,朴素贝叶斯分类器的表达式为
hnb(x)=c∈YargmaxP(c)i=1∏dP(xi∣c)
2. 朴素贝叶斯分类器的训练过程
训练朴素贝叶斯分类器的主要任务是基于训练集 D 估计类先验概率 P(c),并为每个属性估计条件概率 P(xi∣c)。具体方法如下:
- 类先验概率 P(c) 的估计:令 Dc 表示训练集 D 中第 c 类样本组成的集合,若样本充足且独立同分布,则类先验概率可通过 P(c)=∣D∣∣Dc∣ 进行估计。
- 条件概率 P(xi∣c) 的估计:
- 离散属性:令 Dc,xi 表示 Dc 中在第 i 个属性上取值为 xi 的样本组成的集合,条件概率 P(xi∣c) 可估计为 P(xi∣c)=∣Dc∣∣Dc,xi∣。
- 连续属性:假定 p(xi∣c)∼N(μc,i,σc,i2),其中 μc,i 和 σc,i2 分别是第 c 类样本在第 i 个属性上取值的均值和方差,则 p(xi∣c)=2πσc,i1exp(−2σc,i2(xi−μc,i)2)。
3. 示例:训练朴素贝叶斯分类器
利用西瓜数据集 3.0 数据集:

| 编号 |
色泽 |
根蒂 |
敲声 |
纹理 |
脐部 |
触感 |
密度 |
含糖率 |
好瓜 |
| 测1 |
青绿 |
蜷缩 |
浊响 |
清晰 |
凹陷 |
硬滑 |
0.697 |
0.460 |
? |
-
估计类先验概率 P(c)
- 好瓜 8 个, 坏瓜 9 个。
- P(好瓜=是)=178≈0.471
- P(好瓜=否)=179≈0.529
-
为每个属性估计条件概率 P(xi∣c)
- 对于离散属性:
- 青绿 6 个, 3好,3坏
- P青绿∣是=P(色泽=青绿∣好瓜=是)=83=0.375
- P青绿∣否=P(色泽=青绿∣好瓜=否)=93≈0.333
- 对于连续属性,如
- 正态分布的概率密度函数表达式为:p(x)=2πσ1exp(−2σ2(x−μ)2)
- μ=(0.697+0.774+0.634+0.608+0.556+0.403+0.481+0.437)/8=0.57375
- 样本标准差σ的计算公式为:
- p密度:0.697∣是=p(密度=0.697∣好瓜=是)=2π⋅0.1291exp(−2⋅0.1292(0.697−0.574)2)≈1.959。
-
计算分类概率并进行判别
由于0.038>6.80×10−5,因此朴素贝叶斯分类器将测试样本“测1”判别为“好瓜”。
4. 拉普拉斯修正
在实际训练中,若某个属性值在训练集中没有与某个类同时出现过,直接基于常规公式进行概率估计会出现问题。例如,对于“敲声 = 清脆”的测试例,P清脆∣是=P(敲声=清脆∣好瓜=是)=80=0,这会导致连乘式计算出的概率值为零,进而无论该样本其他属性表现如何,分类结果都将是“好瓜 = 否”,这显然不合理。
为避免这种情况,在估计概率值时通常采用“拉普拉斯修正”。令N表示训练集D中可能的类别数,Ni 表示第 i 个属性可能的取值数(比如 清脆、沉闷、浑浊三种),则类先验概率和条件概率的计算公式分别修正为:
- P^(c)=∣D∣+N∣Dc∣+1
- P^(xi∣c)=∣Dc∣+Ni∣Dc,xi∣+1
例如,在西瓜数据集的例子中:
- P^(好瓜=是)=17+28+1≈0.474
- P^(好瓜=否)=17+29+1≈0.526
- P^青绿∣是=P^(色泽=青绿∣好瓜=是)=8+33+1≈0.364
- P^青绿∣否=P^(色泽=青绿∣好瓜=否)=9+33+1≈0.333
- P^清脆∣是=P^(敲声=清脆∣好瓜=是)=8+30+1≈0.091
拉普拉斯修正避免了因训练集样本不充分导致概率估值为零的问题,并且在训练集变大时,修正过程引入的先验影响会逐渐减小,使得估值趋近于实际概率值。
5. 朴素贝叶斯分类器的使用方式
对预测速度要求较高的任务:对于给定的训练集,可事先计算并存储朴素贝叶斯分类器涉及的所有概率估值,预测时只需进行“查表”操作即可完成判别。
7.4 半朴素贝叶斯分类器
1. 为什么需要半朴素贝叶斯?
- 朴素贝叶斯的缺陷:假设所有属性完全独立,但现实中属性之间常有依赖(比如“下雨”和“带伞”相关)。
- 完全联合概率的困境:若考虑所有属性依赖,计算复杂度会指数级增长(类似“维度灾难”)。
于是,半朴素贝叶斯在独立性假设和完全依赖之间找到了折中方案。
2. 核心思想:独依赖估计(ODE)
- 基本假设:每个属性最多依赖一个其他属性(除了类别)。
- 公式简化:后验概率计算变为:
P(c∣x)∝P(c)i=1∏dP(xi∣c,pai)
其中 是 的“父属性”(唯一依赖的属性)。
3. 三种实现ODE的方法
1. SPODE:全体属性共用一个“超父”
- 原理:所有属性都依赖同一个属性(超父)。
- 示例:预测西瓜是否好瓜,假设所有属性(颜色、根蒂等)都依赖“敲声”这个超父。
- 优点:简单,只需选择一个超父。
- 缺点:若选错超父,效果可能变差。
2. TAN:属性间的树形依赖
- 原理:用树结构表达属性依赖关系,每个属性最多依赖一个其他属性。
- 实现步骤:
- 计算条件互信息 ,衡量已知类别时两属性的相关性。
- 构建完全图,边权重为条件互信息。
- 生成最大带权生成树(类似Kruskal算法)。
- 添加类别节点指向所有属性。
- 示例:在西瓜数据中,“纹理”和“触感”可能通过条件互信息形成依赖边。
3. AODE:集成多个SPODE模型
- 原理:让每个属性轮流当超父,集成所有“可靠”的SPODE模型。
- 公式:
P(c∣x)∝i=1,∣Dxi∣≥m′∑dP(c,xi)j=1∏dP(xj∣c,xi)
其中 是阈值,过滤样本不足的属性。
- 示例:在西瓜数据中,分别以“颜色”“根蒂”“敲声”为超父构建SPODE,再取平均。
- 优点:避免单超父的偏差,鲁棒性强。
4. 高阶依赖的挑战
- 理论可能:若考虑属性依赖两个其他属性(k=2),可能更准确。
- 现实限制:估计 需要大量数据。例如:
- 若属性有10个取值,k=1时需要约10×10×类别数 的样本。
- k=2时需要约10×10×10×类别数 的样本,数据量指数级增长。
5. 总结
| 方法 |
核心思想 |
优点 |
缺点 |
| SPODE |
所有属性依赖同一超父 |
简单易实现 |
超父选择影响大 |
| TAN |
树形结构表达强依赖关系 |
保留最相关依赖 |
结构复杂 |
| AODE |
集成多个超父的SPODE |
鲁棒性强,避免偏差 |
计算量稍大 |

7.5 贝叶斯网络
1. 贝叶斯网的基本概念
-
什么是贝叶斯网?
贝叶斯网(Bayesian Network),又称信念网,是一种用来表示变量之间依赖关系的概率图模型。它用一个有向无环图(DAG)来表示各个变量(属性)之间的依赖关系,同时用条件概率表(CPT)来描述在已知父节点取值情况下,每个变量的概率分布。
-
模型组成
一个贝叶斯网由两部分组成:
- 结构 G:图中的每个结点代表一个变量,边表示直接依赖关系。
- 参数 Θ:每个结点对应一个条件概率表,表示P(xi∣πi)(这里πi表示结点xi的所有父结点)。
-
联合概率分布
给定贝叶斯网的结构和参数,所有变量的联合分布可以分解为:
P(x1,x2,…,xd)=i=1∏dP(xi∣πi)
这意味着,只要知道各个变量在给定父节点情况下的概率,就能计算整个系统的联合概率。

2. 贝叶斯网中的条件独立性
- 条件独立性
贝叶斯网通过图结构清晰地表达了各变量之间的条件独立性。例如:
- 同父结构:若两个变量共享同一个父结点,那么在给定父结点的情况下,这两个变量通常是条件独立的。
- 顺序结构:例如 x→y→z,给定中间变量y时,x和z互相独立。
- V型结构(冲撞结构):例如 x1→x4←x2(即两个变量共同影响一个结点)。在没有观察到x4时,x1和x2是边缘独立的;一旦观察到x4,它们就变得依赖。

- D-分离和道德图
为了判断图中变量是否条件独立,可以使用**有向分离(D-separation)**的概念。常见方法是先将有向图“道德化”——
- 找出所有V型结构,在其父结点之间加边;
- 把所有有向边变为无向边,形成道德图。
在道德图中,若从移除一组变量后,两个变量落在不同的连通分支,则它们条件独立。

3. 贝叶斯网的学习
4. 贝叶斯网的推断
-
推断任务
给定部分变量的观测值(称为“证据”),利用贝叶斯网推断其他变量的后验概率。例如,在西瓜问题中,观察到色泽、敲声、根蒂后,可以推断“是否好瓜”或“甜度如何”。
-
推断难点
精确计算后验概率通常是NP难问题,尤其当网络中变量很多、连接密集时。
-
近似推断:吉布斯采样
为了在有限时间内得到近似解,常用吉布斯采样方法:
- 初始时生成一个符合证据的样本;
- 然后依次随机更新非证据变量的取值,使得整个状态按马尔可夫链随机游走;
- 经过大量采样后,统计目标状态出现的频率,就能近似估计后验概率。
注意:如果贝叶斯网中存在极端概率(接近0或1),可能会导致马尔可夫链收敛变慢甚至不收敛。
5. 总结
7.6 EM 算法
1. 背景与问题
在之前的讨论中,我们通常假设每个训练样本的所有属性值都是已知的(即“完整”数据)。但在实际应用中,常常会遇到部分属性缺失的情况——例如,一个西瓜可能缺失“根蒂”的信息,此时我们无法直接知道这个属性的取值。
这种情况下,那些未观测到的变量叫做隐变量(latent variable)。设:
- X 表示已观测的变量,
- Z 表示隐变量,
- Θ 表示模型参数。
如果所有数据都已知,我们可以直接使用最大似然估计(MLE)求出参数,即最大化对数似然
LL(Θ∣X,Z)=lnP(X,Z∣Θ)
但由于隐变量Z未知,我们实际上只能观测到数据X的边缘似然:
LL(Θ∣X)=lnP(X∣Θ)=lnZ∑P(X,Z∣Θ)
直接优化这个求和后的似然往往非常困难。
2. EM 算法的基本思想
EM(Expectation-Maximization,期望最大化)算法提供了一种迭代求解这类含有隐变量问题的方法,其核心思想可以概括为:
-
E步(Expectation step):
当当前参数Θt给定时,利用观测数据X推断隐变量Z的分布(或求出其期望值)。
也就是说,计算隐变量的后验分布:
P(Z∣X,Θt)
并进而计算出对数似然的期望:
Q(Θ∣Θt)=EZ∣X,Θt[lnP(X,Z∣Θ)]
-
M步(Maximization step):
利用E步中得到的隐变量信息(或其概率分布),更新参数,寻找使得Q(Θ∣Θt)最大的参数:
Θt+1=ΘargmaxQ(Θ∣Θt)
这两个步骤不断交替进行,直到参数收敛于一个局部最优解。
3. 为什么EM算法有用
由于隐变量的存在,直接计算对数似然函数
LL(Θ∣X)=lnZ∑P(X,Z∣Θ)
非常困难(“和”在对数内,导致求导复杂)。EM算法通过引入一个辅助分布(实际上就是隐变量的后验分布),将难求的对数似然下界分解成两个更易处理的部分。利用Jensen不等式,可以证明:
lnP(X∣Θ)≥Q(Θ∣Θt)
因此,通过不断优化这个下界,我们可以逐步提高真实对数似然的值。
另外,虽然隐变量问题也可采用梯度下降等方法求解,但当隐变量数目较多时,直接计算梯度可能涉及指数级数量的求和,而EM算法通过交替更新避免了这种复杂性。
4. 总结
- 核心问题: 当训练数据不完整时,如何在存在隐变量Z的情况下估计模型参数Θ?
- EM算法解决方案:
- E步: 根据当前参数估计隐变量的后验分布或期望。
- M步: 利用更新后的隐变量信息,重新求出使得似然函数最大的参数值。
- 迭代更新: 交替进行E步和M步,直到模型参数收敛到一个稳定解。
- 优势: 避免了直接对含有隐变量的对数似然求导所带来的复杂性,是一种非梯度的、迭代优化方法。
这种方法在很多实际应用中都非常有用,比如在混合高斯模型、聚类、隐马尔可夫模型等问题中都可以看到EM算法的身影。