当前位置: 代码迷 >> 综合 >> 《机器学习》周志华(西瓜书)学习笔记 第七章 贝叶斯分类器
  详细解决方案

《机器学习》周志华(西瓜书)学习笔记 第七章 贝叶斯分类器

热度:60   发布时间:2024-01-14 04:07:50.0

《机器学习》周志华(西瓜书)学习笔记

总目录

第七章 贝叶斯分类器

世上只有一种投资是只赚不赔的,那就是学习。
当你的的能力还驾驭不了你的目标时,
就应该沉下心来历练;
当你的才华撑不起你的野心时,
就应该静下心来学习

1.贝叶斯决策论

假设有 N 种可能的类别标记,即 y = { C 1 , C 2 , … , C N } y = \{C_1, C_2,… , C_N\} y={ C1?C2?CN?}

λ j i \lambda_{ji} λji? 是将一个真实标记为 C j C_j Cj? 的样本误分类为 C i C_i Ci? 所产生的损失.

基于后验概率 P ( C i ∣ x ) P(C_i | x) P(Ci?x)可获得将样本 x x x分类为 C i C_i Ci? 所产生的期望损失(expected loss) ,
即在样本 x x x 上的"条件风险”:
R ( c i ∣ x ) = ∑ j = 1 N λ j i P ( c j ∣ x ) R(c_i | x)=\sum_{j=1}^N\lambda_{ji}P(c_j | x) R(ci?x)=j=1N?λji?P(cj?x)

我们的任务是寻找一个判定准则以最小化总体风险:
R ( h ) = E x [ R ( h ( x ) ∣ x ) ] R(h)=E_x[R(h(x) | x)] R(h)=Ex?[R(h(x)x)]

对每个样本 x x x,若 h h h 能最小化条件风险 R ( h ( x ) ∣ x ) R(h(x) | x) R(h(x)x) ,则总体风险 R ( h ) R(h) R(h) 也将被最小化。这就产生了贝叶斯判定准则(Bayes decision rule): 为最小化总体风险,只需在每个样本上选择那个能使条件风险 R ( c ∣ x ) R(c | x) R(cx)最小的类别标记,即:
h ( x ) = a r g m i n c h(x)=arg min_{c } h(x)=argminc?

h称为贝叶斯最优分类器(Bayes optimal classifier),与之对应的总体风险 R ( h ) R(h) R(h) 称为贝叶斯风险(Bayes risk). 1 ? R ( h ? ) 1-R(h*) 1?R(h?) 反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度的理论上限。

后验概率 P ( c ∣ x ) P(c|x) P(cx)有两种策略获得:

  1. 给定 x x x, 可通过直接建模 P ( c ∣ x ) P(c | x) P(cx) 来 预测 c,这样得到的是"判别式模型" , 如

    • 决策树
    • BP 神经网络
    • 支持向量机
  2. 可先对联合概率分布 P ( c ∣ x ) P(c | x) P(cx) 建模,然后再由此获得 P ( c ∣ x ) P(c | x) P(cx), 这样得到的是"生成式模型" 。

由贝叶斯定理对给定样本 x x x,证据因子 P ( x ) P(x) P(x) 与类标记无关,因此估计 P ( c ∣ x ) P(c | x) P(cx) 的问题就转化为如何基于训练数据 D D D 来估计先验 P ( c ) P(c) P(c)和似然 P ( x ∣ c ) P(x | c) P(xc). P ( c ) P(c) P(c)可通过各类样本出现的频率来进行估计. 直接使用频率来估计 P ( x ∣ c ) P(x | c) P(xc) 显然不可行,因为可能"未被观测到"导致得到错误结论"出现概率为零".

极大似然估计
令 Dc 表示训练集 D 中第 c 类样本组成的集合,假设这些样本是独立同分布的,则参数 θc 对于数据集 Dc 的似然是

对于正态分布的样本,均值和方差的极大似然估计

朴素贝叶斯分类器
基于贝叶斯公式来估计后验概率 P(c I x) 的主要困难在于: 类条件概率 P(x I c) 是所有属性上的联合概率,难以从有限的训练样本直接估计而得(第1节末尾已做阐述。为避开这个障碍,朴素贝叶斯分类器(na?ve Bayes classifier)采用了 “属性条件独立性假设” : 对已知类别,假设所有属性相互独立,换言之,假设每个属性独立地对分类结果发生影响,则贝叶斯公式可写成:

由于对所有类别来说 P(x) 相同,因此贝叶斯判定准则有

朴素贝叶斯分类器的训练过程就是基于训练集 D 来估计类先验概率 P?, 并为每个属性估计条件概率 P(Xi I C).
对离散属性而言,

对连续属性可考虑概率密度函数,

根据文中例子,操作流程如下:
1.由训练样本得出好瓜条件下和坏瓜条件下各属性出现的频率
2.由1中得出的好瓜条件下各属性频率相乘得出概率值,由1中得出的坏瓜条件下各属性频率相乘得出概率值。
3.两个概率值进行比较,哪个值大,则判别为该情况。

若某个属性值在训练集中没有与某个类同时出现过

由于连乘,无论该样本的其他属性是什 么,哪怕在其他属性上明显像好瓜,分类的结果都将是坏瓜。为了避免其他属性携带的信息被训练集中未出现的属性值"抹去” 在估计概率值时通常要进行"平滑" ,常用"拉普拉斯修正"。

  1. 半朴素贝叶斯分类器
    为了降低贝叶斯公式中估计后验概率 P(c I x) 的困难,朴素贝叶斯分类器采用了属性条件独立性假设,但在现实任务中这个假设往往很难成立.于是,人们尝试对属性条件独立性假设进行一定程度的放松,由此产生了"半朴素贝叶斯分类器" 。基本想法是适当考虑一部分属性间的相互依赖信息,从而既不需进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。
    “独依赖估计” 是半朴素贝叶斯分类器最常用的一种策略,所谓"独依赖"就是假设每个属性在 类别之外最多仅依赖于一个其他属性,即

其中 pαi 为属性 Xi 所依赖的属性,称为xi的父属性.此时,对每个属性xi,若其父属性 pαi 已知,则可采用上式中的办法来估计概率值P(xi|c,pαi) 。问题的关键就转化为如何确定每个属性的父属性。最直接的做法是假设所有属性都依赖于同一个属性,称为"超父",然后通过交叉验证等模型选择方法来确定超父属性,即为SPODE方法。
TAN算法基于最大带权生成树,步骤如下:
(1) 计算任意两个属’性之间的条件互信息

(2) 以属性为结点构建完全图,任意两个结点之间边的权重设为 I(xi, xj I y) ;
(3) 构建此完全图的最大带权生成树,挑选根变量,将边置为有向;
(4) 加入类别结点 y,增加从 y 到每个属性的有向边.

TAN 实际上仅保留了强相关属性之间 的依赖性.

AODE是一种基于集成学习机制、更为强大的独依赖分类器。与 SPODE 通过模型选择确定超父属性不同, AODE 尝试将每个属性作为超父来构建 SPODE,然后将那些具有足够训练数据支撑的 SPODE 集成起来作为最终结果,即

DXi 是在第 i 个属性上取信为xi的样本的集合, m’ 为阈值常数.

能否通过考虑属性间的高阶依赖来进一步提升泛化性能呢?也就是说,将属性 Pai向替换为包含 k 个属性的集合 Pa,从而将 ODE 拓展为 kDE。随着 k 的增加,准确估计概率 P(xi | y,Pai) 所需的训练样本数量将以指数级增加。因此,若训练数据非常充分,泛化性能有可能提升;但在有限样本条件下,则又陷入估计高阶联合概率的泥沼。

贝叶斯网络
贝叶斯网借助有向无环图来刻画属性间的依赖关系,并使用条件概率表来描述属性的联合概率分布。
一个贝叶斯网 B 由结构 G和参数 。 两部分构成?即 B =(G, q). 网络结构 G 是一个有向无环图,其每个结点对应于一个属性,若两个属性有直接依赖关系,则它们由一条边连接起来;参数q 定量描述这种依赖关系。
a. 结构
贝叶斯网结构有效地表达了属性间的条件独立性。给定父结点集,贝叶斯网假设每个属性与它的非后裔属性独立。贝叶斯望中上变量间的典型关系:

b. 学习
贝叶斯网学习的首要任务就是根据训练数据集来找出结构最恰当的贝叶斯网,评分搜索是求解这一 问题的常用办法。我们先定义一个评分函数(score function),以此来 评估贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网。
学习的目标是找到一个能以最短编码长度描述训练数据的模型,
给定训练集 D = {X1,X2,…, Xm},贝叶斯网 B 在 D 上的评分函数可写为

其中, IBI 是贝叶斯网的参数个数; f(theta) 表示描述每个参数theta所需的字节数;

是贝叶斯网 B 的对数似然.学习任务就转化为一个优化任务,即寻找一个贝叶斯网 B 使评分函数 s(B I D) 最小.
c. 推断
最理想的是直接根据贝叶斯网定义的联合概率分布来精确计算后验概率,但这样的"精确推断"己被证明是 NP 难的 , 当网络结点较多、连接稠密时,难以进行精确推断,此时需借助"近似推断"。 通过降低精度要求,在有限时间内求得近似解。在现实应用中,贝叶斯网的近似推断常用吉布斯采样,这是一种随机采样方法。
步骤如下:

需注意的是,由于马尔可夫链通常需很长时间才能趋于平稳分布,因此吉布斯采样算法的收敛速度较慢.此外,若贝叶斯网中存在极端概率 “0” 或 “1” ,则不能保证马尔可夫链存在平稳分布,此时吉布斯采样会给出错误的估 计结果.

EM算法
在现实应用中往往会遇到"不完整"的训练样本,例如由于西瓜的根蒂己脱落,无法看出是"蜷缩"还是"硬挺"。将这种未观测到的变量称为隐变量。
令 X 表示己观测变量集, Z表示隐变量集, theta表示模型参数.若欲对theta做极大似然估计,则应最大化对数似然

然而由于 Z 是隐变量,上式无法直接求解.此时我们可通过对 Z 计算期望,来最大化已观测数据的对数"边际似然"

EM 算法是常用的估计参数隐变量的利器,它是一种迭代式的方法。其基本想法是:若参数theta己知, 则可根据训练数据推断出最优隐变量 Z 的值 (E 步);反之,若Z 的值已知,则可方便地对参数theta做极大似然估计 (M 步).