本文主要是介绍机器学习理论 | 周志华西瓜书 第七章:贝叶斯分类器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第七章 贝叶斯分类器
此系列文章旨在提炼周志华《机器学习》的核心要点,不断完善中…
7.1 贝叶斯决策理论
- 期望损失(expected loss):在样本x上的“条件风险”(conditional risk)
具体算式: R ( c i ∣ x ) = ∑ j = 1 N λ i j P ( c j ∣ x ) R(c_i|\bm x)=\sum_{j=1}^N\lambda_{ij}P(c_j|\bm x) R(ci∣x)=∑j=1NλijP(cj∣x)
任务:最小化总体风险: R ( h ) = E x [ R ( h ( x ) ∣ x ) ] R(h)=\mathbb{E}_{\bm x}[R(h(\bm x)|\bm x)] R(h)=Ex[R(h(x)∣x)] - 贝叶斯判定准则(Bayes decision rule)
- 为最小化总体风险,只需在每个样本上选择那个能使条件风险R(c|x)最小的类别标记
- 具体算式: h ∗ ( x ) = a r g m i n c ∈ Y R ( c ∣ x ) h^*(\bm x)=arg\ min_{c\in \mathcal{Y}}\ R(c|\bm x) h∗(x)=arg minc∈Y R(c∣x)
h ∗ ( x ) h^*(x) h∗(x):贝叶斯最优分类器(Bayes optimal classifier)
与之对应: R ( h ∗ ) R(h^*) R(h∗)总体风险(贝叶斯风险 Bayes risk)
1 − R ( h ∗ ) 1-R(h^*) 1−R(h∗):反映了分类器所能达到的最好性能(通过机器学习所能产生的模型精度的理论上限)
- 最小化分类错误率(错误率对应于0/1损失)
- 贝叶斯最优分类器
- 具体算式: h ∗ ( x ) = a r g m a x c ∈ Y P ( c ∣ x ) h^*(\bm x)=arg\ max_{c\in\mathcal{Y}}P(c|\bm x) h∗(x)=arg maxc∈YP(c∣x)
- 对每个样本x,选择能使后验概率 P ( c ∣ x ) P(c|x) P(c∣x)最大的类别标记
- 机器学习所要实现的是基于有限的训练样本集尽可能准确估计出后验概率P(c|x)
- 策略一:判别式模型(discriminative models)
给定x,可通过直接建模 P ( c ∣ x ) P(c|x) P(c∣x)来预测c
决策树、BP神经网络、支持向量机等 - 策略二:生成式模型(generative models)
先对联合概率分布 P ( d , c ) P(d,c) P(d,c)建模,然后再由此获得 P ( c ∣ x ) P(c|x) P(c∣x)
推导过程: P ( c ∣ x ) = P ( x , c ) P ( x ) P(c|\bm x)=\frac{P(\bm x,c)}{P(\bm x)} P(c∣x)=P(x)P(x,c) →贝叶斯定理→ P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) P(c|\bm x)=\frac{P(c)P(\bm x|c)}{P(\bm x)} P(c∣x)=P(x)P(c)P(x∣c)- P ( c ) P(c) P(c):类“先验”概率(表达样本空间中各类样本所占的比例,由大数定律,当训练集包含充足的i.i.d样本时,P©可通过各类样本出现的频率估计)
- P ( x ∣ c ) P(x|c) P(x∣c):样本x相对于标记c的类条件概率(似然)(由于涉及关于x所有属性的联合概率,直接根据样本的频率来估计将会遇到严重困难)
- P ( x ) P(x) P(x):用于归一化的“证据”因子,对给定样本x,证据因子对所有类标记均相同,可忽略
- 策略一:判别式模型(discriminative models)
7.2 极大似然估计
- 估计类条件概率的一种常用策略
- 先假定其具有某种确定的概率分布形式
- 记关于类别c的类条件概率为 P ( x ∣ c ) P(\bm x|c) P(x∣c)
- 假定其有确定形式且被参数向量唯一确定,记为 P ( x ∣ θ c ) P(\bm x|\bm θ_c) P(x∣θc)
- 再基于训练样本对概率分布的参数进行估计
- 利用训练集D估计参数θc
- 先假定其具有某种确定的概率分布形式
- 参数估计(parameter estimation)过程
- 两个学派,两个方案
Frequentist:认为参数客观存在且固定,通过优化似然函数等确定
Bayesian:认为参数为随机变量,假定参数先验分布,基于观测计算后验分布 - 频率主义学派的极大似然估计(MLE)
-
理论
D c D_c Dc:训练集D第c类样本集合(假定i.i.d),参数θc对Dc的似然:
P ( D c ∣ θ c ) = ∏ x ∈ D c P ( x ∣ θ c ) P(D_c|\bm \theta_c)=\prod_{\bm x\in D_c}P(\bm x|\bm\theta_c) P(Dc∣θc)=x∈Dc∏P(x∣θc)
对 θ c θ_c θc进行极大似然估计就是寻找能最大化似然 P ( D c ∣ θ c ) P(D_c|θ_c) P(Dc∣θc)的参数值
连乘操作易造成下溢,使用对数似然(log-likelihood)
L L ( θ c ) = l o g P ( D c ∣ θ c ) = ∑ x ∈ D c l o g P ( x ∣ θ c ) LL(\bm\theta_c)=log\ P(D_c|\bm\theta_c)=\sum_{\bm x\in D_c}log\ P(\bm x|\bm\theta_c) LL(θc)=log P(Dc∣θc)=x∈Dc∑log P(x∣θc)
参数 θ c \bm θ_c θc的极大似然估计: θ c ^ = a r g m a x θ c L L ( θ c ) \hat{\bm \theta_c}=arg\ max_{\bm \theta_c}LL(\bm\theta_c) θc^=arg maxθcLL(θc) -
实例
在连续属性情形下,假设概率密度函数: μ c ^ = 1 ∣ D c ∣ ∑ x ∈ D c x \hat{\bm \mu_c}=\frac 1 {|D_c|}\sum_{\bm x\in D_c}\bm{x} μc^=∣Dc∣1∑x∈Dcx
2个参数的极大似然估计: σ c 2 ^ = 1 ∣ D c ∣ ∑ x ∈ D c ( x − μ c ^ ) ( x − μ c ^ ) T \hat{\bm\sigma_c^2}=\frac 1 {|D_c|}\sum_{\bm x\in D_c}(\bm x-\hat{\bm \mu_c})(\bm x-\hat{\bm \mu_c})^T σc2^=∣Dc∣1∑x∈Dc(x−μc^)(x−μc^)T
通过极大似然法得到的正态分布均值——样本均值
通过极大似然法得到的正态分布方差——样本和样本均值差与其转置的乘积的均值 -
- 两个学派,两个方案
7.3 朴素贝叶斯分类器
7.3.1 解决的问题
基于贝叶斯公式来估计后验概率P(c|x)难点:类条件概率P(x|c)为所有属性上的联合概率,难以从有限的训练样本直接估计而得
- 组合爆炸
- 样本稀疏
7.3.2 解决的方法
- 属性条件独立性假设(attribute conditional independence assumption):
对已知类别,假设所有属性相互独立(每个属性独立地对分类结果发生影响) - 表达式: P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) = P ( c ) P ( x ) ∏ i = 1 d P ( x i ∣ c ) P(c|\bm x)=\frac{P(c)P(\bm x|c)}{P(\bm x)}=\frac{P(c)}{P(\bm x)}\prod_{i=1}^dP(x_i|c) P(c∣x)=P(x)P(c)P(x∣c)=P(x)P(c)∏i=1dP(xi∣c)
d:属性数目, x i x_i xi:在第i个属性上的取值 - 对所有类别, P ( x ) P(\bm x) P(x)相同,由贝叶斯判定准则:
h n b ( x ) = a r g m a x c ∈ Y P ( c ) ∏ i = 1 d P ( x i ∣ c ) h_{nb}(\bm x)=arg\ max_{c\in{\mathcal Y}}P(c)\prod_{i=1}^dP(x_i|c) hnb(x)=arg maxc∈YP(c)i=1∏dP(xi∣c)
朴素贝叶斯分类器的表达式
- 训练过程:基于D估计先验概率 P ( c ) P(c) P(c)并为每个属性估计条件概率 P ( x i ∣ c ) P(x_i|c) P(xi∣c)
- 类先验概率
表达式: P ( c ) = ∣ D c ∣ ∣ D P(c)=\frac{|D_c|}{|D} P(c)=∣D∣Dc∣
条件:充足的独立同分布样本 - 条件概率 P ( x i ∣ c ) P(x_i|c) P(xi∣c)
- 对离散属性
表达式: P ( x i ∣ c ) = ∣ D c , x i ∣ ∣ D c ∣ P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|} P(xi∣c)=∣Dc∣∣Dc,xi∣
D c , x i D_{c,x_i} Dc,xi:在第i个属性上取值为xi的样本组成的集合 - 对连续属性
表达式: p ( x i ∣ c ) = 1 2 π σ c , i e x p ( − ( x i − μ c , i ) 2 2 σ c , i 2 ) p(x_i|c)=\frac 1{\sqrt{2\pi}\sigma_{c,i}}exp(-\frac{(x_i-\mu_{c,i})^2}{2\sigma_{c,i}^2}) p(xi∣c)=2πσc,i1exp(−2σc,i2(xi−μc,i)2)
参数:第c类样本在第i个属性上的均值/方差
- 对离散属性
- 类先验概率
7.3.3 实例 西瓜数据集训练朴素贝叶斯分类器
7.3.4 拉普拉斯修正(Laplacian correction)
- 解决的问题:避免其他属性的信息被训练集中未出现的属性值“抹去”,估计概率值通常要平滑(smoothing)
- 解决的方法
N:D中可能类别数,Ni:第i个属性可能取值数
类先验概率: P ^ ( c ) = ∣ D c ∣ + 1 ∣ D ∣ + N \hat{P}(c)=\frac{|D_c|+1}{|D|+N} P^(c)=∣D∣+N∣Dc∣+1
属性条件概率: P ^ ( x i ∣ c ) = ∣ D c , x i ∣ + 1 ∣ D c ∣ + N i \hat{P}(x_i|c)=\frac{|D_{c,x_i}|+1}{|D_c|+N_i} P^(xi∣c)=∣Dc∣+Ni∣Dc,xi∣+1 - 好处
避免因训练样本不充分导致概率估值为零的问题
训练集变大,修正过程所引入的先验的影响逐渐可忽略(使估值趋于实际概率)
7.3.5 现实使用
- 任务对预测速度要求高:给定训练集,将朴素贝叶斯分类器设计的所有概率估值事先计算存储,预测时只需“查表”
- 任务数据更替频繁:懒惰学习(lazy learning)
- 数据不断增加:现有估值基础上仅对新增样本的属性所涉及的概率估值进行计数修正(增量学习)
7.4 半朴素贝叶斯分类器
7.4.1 概述
- 解决的问题:朴素贝叶斯属性条件独立性假设现实难成立
- 基本想法:适当考虑一部分属性间相互依赖信息(不需进行完全联合概率计算,也不彻底忽略强属性依赖关系)
- 基本策略:独依赖估计(One-Dependent Estimator,ODE)
假设每个属性在类别之外最多仅依赖于一个其他属性
P ( c ∣ x ) ∝ P ( c ) ∏ i = 1 d P ( x i ∣ c , p a i ) P(c|\bm x)∝P(c)\prod_{i=1}^dP(x_i|c,pa_i) P(c∣x)∝P(c)i=1∏dP(xi∣c,pai)
p a i p_{ai} pai:属性 x i x_i xi所依赖的属性( x i x_i xi的父属性)
7.4.1 不同的独依赖分类器
-
概述:如何确定每个属性的父属性,不同的做法产生不同的独依赖分类器
-
ODE
-
SPODE(Super-Parent ODE)
假设所有属性依赖同一个属性(超父 super-parent)
通过交叉验证等模型选择方式确定超父属性 -
TAN(Tree Augmented naive Bayes)
- 在最大带权生成树(maximum weighted spanning tree)算法基础上,将属性间的依赖关系约简为如图树形结构
1.计算任意两属性之间的条件互信息(conditional mutual information)
2.以属性为结点构建完全图,任意两个结点之间边的权重设为 I ( x i , x j ∣ y ) I(x_i,x_j|y) I(xi,xj∣y)
3.构建此完全图的最大带权生成树,挑选根变量,将边设置为有向
4.加入类别结点y,增加从y到每个属性的有向边 - 条件互信息 I ( x i , x j ∣ y ) I(x_i,x_j|y) I(xi,xj∣y)刻画了属性 x i x_i xi和 x j x_j xj在已知类别情况下的相关性,通过最大生成树算法,TAN仅保留了强相关属性之间的依赖性
- 在最大带权生成树(maximum weighted spanning tree)算法基础上,将属性间的依赖关系约简为如图树形结构
-
AODE(Averaged One-Dependent Estimator)
- 基于集成学习机制、更为强大的独依赖分类器
- AODE尝试将每个属性作为超父来构建SPODE,然后将具有足够训练数据支撑的SPODE集成起来作为最终结果
表达式
P ( c ∣ x ) ∝ ∑ i = 1 , ∣ D x i ∣ ≥ m ′ d P ( c , x i ) ∏ j = 1 d P ( x j ∣ c , x i ) P(c|\bm x)∝\sum_{i=1,\ |D_{x_i}|≥m'}^dP(c,x_i)\prod_{j=1}^dP(x_j|c,x_i) P(c∣x)∝i=1, ∣Dxi∣≥m′∑dP(c,xi)j=1∏dP(xj∣c,xi)
D x i D_{x_i} Dxi:第i个属性上取值为xi的样本集合,m’:阈值常数
类先验概率: P ^ ( c , x i ) = ∣ D c , x i ∣ + 1 ∣ D ∣ + N \hat{P}(c,x_i)=\frac{|D_{c,x_i}|+1}{|D|+N} P^(c,xi)=∣D∣+N∣Dc,xi∣+1
属性条件概率: P ^ ( x j ∣ c , x i ) = ∣ D c , x i , x j ∣ + 1 ∣ D c , x i ∣ + N \hat{P}(x_j|c,x_i)=\frac{|D_{c,x_i,x_j}|+1}{|D_{c,x_i}|+N} P^(xj∣c,xi)=∣Dc,xi∣+N∣Dc,xi,xj∣+1
N i N_i Ni:第i个属性可能的取值数, D c , x i D_{c,x_i} Dc,xi:类别为c且在第i个属性上取值为xi的样本集合, D c , x i , x j D_{c,x_i,x_j} Dc,xi,xj:类别为c且在第i和第j个属性上取值分别为xi和xj的样本集合
-
-
kDE
- 通过考虑属性间的高阶依赖来进一步提升泛化性能
- 注意:随着k增加,准确估计概率 P ( x i ∣ y , p a i ) P(x_i|y,pa_i) P(xi∣y,pai)所需的训练样本数量将以指数级增加
若训练数据非常充分,泛化性能有可能提升
有限样本条件下,又陷入估计高阶联合概率的泥沼
7.5 贝叶斯网 (信念网,经典的概率团模型)
7.5.0 概述
借助有向无环图(DAG, Directed Acyclic Graph)刻画属性之间的依赖关系
使用条件概率表(CPT, Conditional Probability Table)来描述属性的联合概率密度
贝叶斯网 B = ( G , θ ) B=(G,θ) B=(G,θ);G:结构,θ:参数
7.5.1 结构
- 1)贝叶斯网结构有效表达了属性间的条件独立性
给定父结点集,贝叶斯网假设每个属性与它的非后裔属性独立
B = ( G , θ ) B=(G,θ) B=(G,θ)对属性 x 1 , x 2 , . . . x d x_1,x_2,...x_d x1,x2,...xd的联合概率分布定义
P B ( x 1 , x 2 , . . . x d ) = ∏ i = 1 d P B ( x i ∣ π i ) = ∏ i = 1 d θ x i ∣ π i P_B(x_1,x_2,...x_d)=\prod_{i=1}^dP_B(x_i|\pi_i)=\prod_{i=1}^d\theta_{x_i|\pi_i} PB(x1,x2,...xd)=i=1∏dPB(xi∣πi)=i=1∏dθxi∣πi - 2)贝叶斯网中三个变量之间的典型依赖关系
- 同父结构(common parent)
给定父节点取值,则X3与X4条件独立 - V型结构(V-structure,冲撞结构)
给定子节点X4的取值,X1与X2不必独立
若X4的取值完全未知,则V型结构下X1与X2却相互独立
简单验证: P ( x 1 , x 2 ) = ∑ x 4 P ( x 1 , x 2 , x 4 ) = ∑ x 4 P ( x 4 ∣ x 1 , x 2 ) P ( x 1 ) P ( x 2 ) P(x_1,x_2)=\sum_{x_4}P(x_1,x_2,x_4)=\sum_{x_4}P(x_4|x_1,x_2)P(x_1)P(x_2) P(x1,x2)=x4∑P(x1,x2,x4)=x4∑P(x4∣x1,x2)P(x1)P(x2)
称谓:边际独立性(marginal independence) - 顺序结构
给定x值,y与z条件独立
- 同父结构(common parent)
- 3)有向分离(D-separation)
作用:分析有向图中变量间的条件独立性
步骤- 将有向图转变为一个无向图
- 找出有向图中的所有V型结构,在V型结构的两个父节点之间加上一条无向边
- 将所有有向边改为无向边
- 4)道德图(端正图 moral graph)
定义:有向分离产生的无向图
基于道德图能直观、迅速地找到变量间的条件独立性- 假定:道德图中变量x,y,变量集合z={zi}
- 条件:x,y能在图上被z分开(从道德图中将变量集合z去除,x和y分属两个连通分支)
- 结论:x和y被z有向分离
举例:
- 5)道德化(moralization)
定义:令父节点相连的过程
值义:孩子的父母应该建立牢固的关系,否则是不道德的
7.5.2 学习
1)解决的问题:现实中不知晓网络结构,因此首要任务为根据训练数据找到结构最恰当的贝叶斯网
2)解决的方法:评分搜索
- 评分函数(score function)
- 基本描述
作用:评估贝叶斯网络与训练数据的契合程度,然后基于这个评分来寻找结构最优的贝叶斯网
准则:基于信息论准则
学习目标:找到一个能以最短编码长度描述训练数据的模型
最小描述长度准则(MDL Minimal Description Length):选择综合编码长度(包括描述网络和编码数据)最短的贝叶斯网 - 表达式
评分函数: s ( B ∣ D ) = f ( θ ) ∣ B ∣ − L L ( B ∣ D ) s(B|D)=f(\theta)|B|-LL(B|D) s(B∣D)=f(θ)∣B∣−LL(B∣D)
贝叶斯网B的对数似然: L L ( B ∣ D ) = ∑ i = 1 m l o g P B ( x i ) LL(B|D)=\sum_{i=1}^mlogP_B(\bm x_i) LL(B∣D)=∑i=1mlogPB(xi) - 类别
- AIC(Akaike Information Criterion)评分函数 :f(θ)=1(每个参数用1字节描述)
A I C ( B ∣ D ) = ∣ B ∣ − L L ( B ∣ D ) AIC(B|D)=|B|-LL(B|D) AIC(B∣D)=∣B∣−LL(B∣D) - BIC(Bayesian Information Criterion)评分函数:f(θ)=0.5+logm(每个参数用0.5+logm字节描述)
B I C ( B ∣ D ) = l o g m 2 ∣ B ∣ − L L ( B ∣ D ) BIC(B|D)=\frac{log\ m}2|B|-LL(B|D) BIC(B∣D)=2log m∣B∣−LL(B∣D) - 负对数似然,相应的,学习任务退化为极大似然估计:f(θ)=0(不计算对网络进行编码的长度)
θ x i ∣ π i = P ^ D ( x i ∣ π i ) \theta_{x_i|\pi_i}=\hat{P}_D(x_i|\pi_i) θxi∣πi=P^D(xi∣πi) - 网络结构G固定
- AIC(Akaike Information Criterion)评分函数 :f(θ)=1(每个参数用1字节描述)
- 搜索贝叶斯网络空间NP难问题
问题:从所有可能的网络结构空间搜索最优贝叶斯网结构是一个NP难问题,难以快速求解
在有限时间内求得近似解的策略- 贪心法
- 是通过给网络结构施加约束来削减
7.5.3 推断
- 概述
贝叶斯网训练好->回答查询(query)(通过一些属性变量的观测值来推测其他属性变量的取值)
证据(evidence):已知变量观测值 - 吉布斯采样(Gibbs sampling)算法
贝叶斯网的近似推断常用方法、一种随机采样法
随机漫步、马尔可夫链、平稳分布
具体算法
特点- 马尔可夫链通常需要很长时间才能趋于平稳分布(Gibbs sampling)收敛速度慢
- 若贝叶斯网中存在极限概率0或1,则不能保证马尔可夫链存在平稳分布(此时会给出错误的估计结果)
7.6 EM算法
- 特点:期望最大化算法,常用的估计参数隐变量的利器,迭代式算法
- 解决的问题:“不完整”的训练样本(不是虽有属性变量的值都能观测到)
- 解决的方法
最大化对数似然: L L ( Θ ∣ X , Z ) = l n P ( X , Z ∣ Θ ) LL(\Theta|\bm X,\bm Z)=lnP(\bm X,\bm Z|\Theta) LL(Θ∣X,Z)=lnP(X,Z∣Θ)
最大化已观测数据的对数“边际似然”(marginal likelihood): L L ( Θ ∣ X ) = l n P ( X ∣ Θ ) = l n ∑ Z P ( X , Z ∣ Θ ) LL(\Theta|\bm X)=lnP(\bm X|\Theta)=ln\sum_{\bm Z}P(\bm X,\bm Z|\Theta) LL(Θ∣X)=lnP(X∣Θ)=ln∑ZP(X,Z∣Θ) - 基本思想
参数已知,则可以根据训练数据推断出最优隐变量Z的值(E步)
若Z的值已知,则可方便地对参数做极大似然估计(M步) - EM算法的两个步骤
- E步(Expectation)
当前参数θ^t推断隐变量分布: P ( Z ∣ X , Θ t ) P(\bm Z|\bm X,\Theta^t) P(Z∣X,Θt)
计算对数似然 L L ( Θ ∣ X , Z ) LL(\Theta|\bm X,\bm Z) LL(Θ∣X,Z)关于Z的期望: Q ( Θ ∣ Θ t ) = E Z ∣ X , Θ t L L ( Θ ∣ X , Z ) Q(\Theta|\Theta_t)=\mathbb{E}_{\bm Z|\bm X,\Theta_t}LL(\Theta|\bm X,\bm Z) Q(Θ∣Θt)=EZ∣X,ΘtLL(Θ∣X,Z) - M步(Maximization)
寻找参数最大化期望似然
Θ t + 1 = a r g m a x Θ Q ( Θ ∣ Θ t ) \Theta^{t+1}=arg\ max_{\Theta}\ Q(\Theta|\Theta^t) Θt+1=arg maxΘ Q(Θ∣Θt)
- E步(Expectation)
这篇关于机器学习理论 | 周志华西瓜书 第七章:贝叶斯分类器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!