机器学习周志华学习笔记-第7章<贝叶斯分类器>
卷王,请看目录
7贝叶斯分类器
贝叶斯决策论(Bayesian decision theory)是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。在开始介绍贝叶斯决策论之前,我们首先来回顾下贝叶斯公式。
7.1 贝叶斯决策论
若将上述定义中样本空间的划分
B
i
B_i
Bi看做为类标,
A
A
A看做为一个新的样本,则很容易将条件概率理解为样本
A
A
A是类别
B
i
B_i
Bi的概率。在机器学习训练模型的过程中,往往我们都试图去优化一个风险函数,因此在概率框架下我们也可以为贝叶斯定义“条件风险”
(conditional risk)。
我们的任务就是寻找一个判定准则最小化所有样本的条件风险总和,因此就有了贝叶斯判定准则
(Bayes decision rule):为最小化总体风险,只需在每个样本上选择那个使得条件风险最小的类标。
若损失函数
λ
\lambda
λ 取0-1损失,则有:
即对于每个样本
x
x
x,选择其后验概率
P
(
c
∣
x
)
P(c | x)
P(c∣x)最大所对应的类标,能使得总体风险函数最小,从而将原问题转化为估计后验概率
P
(
c
∣
x
)
P(c | x)
P(c∣x)。一般这里有两种策略来对后验概率进行估计:
- 判别式模型:直接对 P ( c ∣ x ) P(c | x) P(c∣x)进行建模求解。例如我们前面所介绍的决策树、神经网络、SVM都是属于判别式模型。
- 生成式模型:通过先对联合分布 P ( x , c ) P(x,c) P(x,c)建模,从而进一步求解 P ( c ∣ x ) P(c | x) P(c∣x)。
贝叶斯分类器就属于生成式模型,基于贝叶斯公式对后验概率
P
(
c
∣
x
)
P(c | x)
P(c∣x) 进行一项神奇的变换
P
(
c
∣
x
)
P(c | x)
P(c∣x)变身:
对于给定的样本
x
,
P
(
x
)
x,P(x)
x,P(x)与类标无关,
P
(
c
)
P(c)
P(c)称为类先验概率,
p
(
x
∣
c
)
p(x | c )
p(x∣c)称为类条件概率。这时估计后验概率
P
(
c
∣
x
)
P(c | x)
P(c∣x)就变成为估计类先验概率和类条件概率的问题。对于先验概率和后验概率,普及一下它们的基本概念。
- 先验概率: 根据以往经验和分析得到的概率。
- 后验概率:后验概率是基于新的信息,修正原来的先验概率后所获得的更接近实际情况的概率估计。
实际上先验概率就是在没有任何结果出来的情况下估计的概率,而后验概率则是在有一定依据后的重新估计,直观意义上后验概率就是条件概率。
对于类先验概率
P
(
c
)
,
p
(
c
)
P(c),p(c)
P(c),p(c)就是样本空间中各类样本所占的比例,根据大数定理(当样本足够多时,频率趋于稳定等于其概率),这样当训练样本充足时,
p
(
c
)
p(c)
p(c)可以使用各类出现的频率来代替。因此只剩下类条件概率
p
(
x
∣
c
)
p(x | c )
p(x∣c),它表达的意思是在类别
c
c
c中出现
x
x
x的概率,它涉及到属性的联合概率问题,若只有一个离散属性还好,当属性多时采用频率估计起来就十分困难,因此这里一般采用极大似然法进行估计。
7.2 极大似然法
极大似然估计(Maximum Likelihood Estimation,简称MLE),是一种根据数据采样来估计概率分布的经典方法。常用的策略是先假定总体具有某种确定的概率分布,再基于训练样本对概率分布的参数进行估计。运用到类条件概率
p
(
x
∣
c
)
p(x | c )
p(x∣c)中,假设
p
(
x
∣
c
)
p(x | c )
p(x∣c)服从一个参数为
θ
θ
θ的分布,问题就变为根据已知的训练样本来估计
θ
θ
θ。极大似然法的核心思想就是:估计出的参数使得已知样本出现的概率最大,即使得训练数据的似然最大。
所以,贝叶斯分类器的训练过程就是参数估计。总结最大似然法估计参数的过程,一般分为以下四个步骤:
- 1.写出似然函数;
- 2.对似然函数取对数,并整理;
- 3.求导数,令偏导数为0,得到似然方程组;
- 4.解似然方程组,得到所有参数即为所求。
例如:假设样本属性都是连续值,
p
(
x
∣
c
)
p(x | c )
p(x∣c)服从一个多维高斯分布,则通过MLE计算出的参数刚好分别为:
上述结果看起来十分合乎实际,但是采用最大似然法估计参数的效果很大程度上依赖于作出的假设是否合理,是否符合潜在的真实数据分布。
7.3 朴素贝叶斯分类器
不难看出:原始的贝叶斯分类器最大的问题在于联合概率密度函数的估计,首先需要根据经验来假设联合概率分布,其次当属性很多时,训练样本往往覆盖不够,参数的估计会出现很大的偏差。为了避免这个问题,朴素贝叶斯分类器(naive Bayes classifier)采用了“属性条件独立性假设”,即样本数据的所有属性之间相互独立。这样类条件概率p(x | c )可以改写为:
这样,为每个样本估计类条件概率变成为每个样本的每个属性估计类条件概率。
相比原始贝叶斯分类器,朴素贝叶斯分类器基于单个的属性
计算类条件概率更加容易操作,需要注意的是:若某个属性值在训练集中和某个类别没有一起出现过,这样会抹掉其它的属性信息,因为该样本的类条件概率被计算为0。因此在估计概率值时,常常用进行平滑(smoothing)处理,拉普拉斯修正(Laplacian correction)就是其中的一种经典方法,具体计算方法如下:
当训练集越大时,拉普拉斯修正引入的影响越来越小。对于贝叶斯分类器,模型的训练就是参数估计,因此可以事先将所有的概率储存好,当有新样本需要判定时,直接查表计算即可。
7.4 半朴素贝叶斯分类器
半朴素贝叶斯分类器是对朴素贝叶斯分类器的一种改进,它在一定程度上放松了朴素贝叶斯分类器中的独立性假设。为了降低贝叶斯公式中估计后验概 P ( c ∣ x ) P(c |x) P(c∣x)的困难,朴素贝叶斯分类器采用了属性条件独立性假设,但在现实任务中这个假设往往很难成立。于是,人们尝试对属性条件独立性假设进行一定程度的放松,由此产生了一类称为“半朴素贝叶斯分类器” (semi-naive Bayes classifiers)的学习方法。
半朴素贝叶斯分类器的基本想法是适当考虑一部分属性间
的相互依赖信息,从而既不需进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。
“独依赖估计” (One-Dependent Estimator,简称ODE)是半朴素贝叶斯分类器最常用的一种策略。顾名思议,所谓“独依赖”就是假设每个属性在类别之外最多仅依赖于一个其他属性
,即
最直接的做法是假设所有属性都依赖于同一个属性,称为“超父” (super-parent), 然后通过交叉验证等模型选择方法来确定超父属性,由此形成了 SPODE (Super-Parent ODE)方法.例如,在图7.1(b)中x1是超父属性。
7.5 贝叶斯网
贝叶斯网(Bayesian network)亦称"信念网” (belief network),它借助有向无环图(Directed Acyclic Graph,简称DAG)来刻画属性之间的依赖关系,并使用条件概率表(Conditional Probability Table,简称CPT)来描述属性的联合概率分布。
具体来说,一个贝叶斯网B由结构G和参数θ两部分构成,即 B = < G , θ > B=<G,θ> B=<G,θ>. 网络结构 G G G是一个有向无环图,其每个结点对应于一个属性,若两个属性有直接依赖关系,则它们由一条边连接起来;参数 θ θ θ定量描述这种依赖关系
7.5.1 结构
贝叶斯网结构有效地表达了属性间的条件独立性。给定父结点集,贝叶斯网假设每个属性与它的非后裔属性独立。
为了分析有向图中变量间的条件独立性,可使用“有向分离” (D- separation)(D是指“有向”(directed))。我们先把有向图转变为一个无向图:
- 找出有向图中的所有V型结构,在V型结构的两个父结点之间加上一条无向边。
- 将所有有向边改为无向边。
由此注生的无向图称为“道德图” (moral graph),令父结点相连的过程称为 "道德化”。
道德化”的蕴义:孩子的父母应建立牢靠的关系,否则是不道德的。
7.5.2 学习
若网络结构已知,即属性间的依赖关系已知,则贝叶斯网的学习过程相对简单,只需通过对训练样本“计数”,估计出每个结点的条件概率表即可。
但在现实应用中我们往往并不知晓网络结构,于是,贝叶斯网学习的首要任务就是根据训练数据集来找出结构最“恰当”的贝叶斯网。
**“评分搜索”**是求解这一问题的常用办法。具体来说,我们先定义一个评分函数(score function),以此来评估贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网。显然,评分函数引入了关于我们希望获得什么样的贝叶斯网的归纳偏好。
常用评分函数通常基于信息论准则,此类准则将学习问题看作一个数据压缩任务,学习的目标是找到一个能以最短编码长度描述训练数据的模型,此时编码的长度包括了描述模型自身所需的字节长度和使用该模型描述数据所需的字节长度。
对贝叶斯网学习而言,模型就是一个贝叶斯网,同时,每个贝叶斯网描述了一个在训练数据上的概率分布,自有一套编码机制能使那些经常出现的样本有更短的编码。于是,我们应选择那个综合编码长度(包括描述网络和编码数据)最短的贝叶斯网,这就是"最小描述长度”(Minimal Description Length,简称MDL)准则。
从所有可能的网络结构空间搜索最优贝叶斯网结构是一个NP 难问题,难以快速求解。
有两种常用的策略能在有限时间内求得近似解:
- 第一种是贪心法,例如从某个网络结构出发,每次调整一条边(增加、删除或调整方向),直到评分函数值不再降低为止;
- 第二种是通过给网络结构施加约束来削搜索空间,例如将网络结构限定为树形结构等
7.5.3 推断
**贝叶斯网训练好之后就能用来回答“查询”(query),即通过一些属性变量的观测值来推测其他属性变量的取值。**例如在西瓜问题中,若我们观测到西瓜色泽青绿、敲声浊响、根蒂蜷缩,想知道它是否成熟、甜度如何。这样通过已知变量观测值来推测待查询变量的过程称为“推断” (inference),已知变量观测值称为“证据” (evidence)。
最理想的是直接根据贝叶斯网定义的联合概率分布来精确计算后验概率, 不幸的是,这样的“精确推断”已被证明是NP难的[Cooper, 1990];换言之, 当网络结点较多、连接稠密时,难以进行精确推断,此时需借助“近似推断”, 通过降低精度要求,在有限时间内求得近似解。在现实应用中,贝叶斯网的近似推断常使用吉布斯釆样(Gibbs sampling)来完成,这是一种随机采样方法。
实质上,吉布斯采样是在贝叶斯网所有变量的联合状态空间与证据
E
=
e
E = e
E=e一致的子空间中进行“随机漫步”(random walk)。每一步仅依赖于前一 的状态,这是一个"马尔可夫链” (Markov chain)。在一定条件下,无论从什么初始状态开始,马尔可夫链第
t
t
t步的状态分布在
t
→
o
o
t→oo
t→oo时必收敛于一个平稳分布(stationary distribution);对于吉布斯采样来说,这个分布恰好是
P
(
Q
∣
E
=
e
)
P(Q | E = e)
P(Q∣E=e)。因此,在
T
T
T很大时,吉布斯采样相当于根据
P
(
Q
∣
E
=
e
)
P(Q | E = e)
P(Q∣E=e)釆样, 从而保证了收敛于
P
(
Q
=
q
∣
E
=
e
)
P(Q = q | E = e)
P(Q=q∣E=e)。
需注意的是,由于马尔可夫链通常需很长时间才能趋于平稳分布,因此 吉布斯采样算法的收敛速度较慢。此外,若贝叶斯网中存在极端概率 “ 0 ” “0” “0”或 “ 1 ” “1” “1” ,则不能保证马尔可夫链存在平稳分布,此时吉布斯采样会给出错误的估计结果。
7.6 EM算法
现实应用中往往会遇到“不完整”的训练样本,例如由于西瓜的根蒂已脱落,无法看出是“蜷缩”还是“硬挺”,则训练样本的“根蒂”属性变量值未知。
**未观测变量的学名是“隐变量”(latent variable)**
EM(Expectation-Maximization)算法是一种常用的估计参数隐变量的利器,也称为“期望最大算法”,是数据挖掘的十大经典算法之一。EM算法主要应用于训练集样本不完整即存在隐变量时的情形
(例如某个属性值未知),通过其独特的“两步走”策略能较好地估计出隐变量的值。
7.6.1EM算法概念
EM是一种迭代式的方法,它的基本思想就是:若样本服从的分布参数 θ θ θ已知,则可以根据已观测到的训练样本推断出隐变量 Z Z Z的期望值( E E E步),若 Z Z Z的值已知则运用最大似然法估计出新的 θ θ θ值( M M M步)。重复这个过程直到 Z Z Z和 θ θ θ值不再发生变化。
简单来讲:假设我们想估计 A A A和 B B B这两个参数,在开始状态下二者都是未知的,但如果知道了 A A A的信息就可以得到B的信息,反过来知道了 B B B也就得到了 A A A。可以考虑首先赋予 A A A某种初值,以此得到 B B B的估计值,然后从 B B B的当前值出发,重新估计 A A A的取值,这个过程一直持续到收敛为止。
现在再来回想聚类的代表算法K-Means:【首先随机选择类中心=>将样本点划分到类簇中=>重新计算类中心=>不断迭代直至收敛】,不难发现这个过程和EM迭代的方法极其相似,事实上,若将样本的类别看做为“隐变量”(latent variable)
Z
Z
Z,类中心看作样本的分布参数
θ
θ
θ,K-Means就是通过EM算法来进行迭代的,与我们这里不同的是,K-Means的目标是最小化样本点到其对应类中心的距离和,上述为极大化似然函数。