您的位置:首页 > 其它

贝叶斯分类器的学习笔记

2017-12-23 16:00 106 查看
转自 贝叶斯分类器(一)
http://blog.csdn.net/zhangph1229/article/details/52106301



机器学习 之 贝叶斯分类器

http://blog.csdn.net/claire7/article/details/46762507


贝叶斯分类器学习笔记

http://blog.csdn.net/batuwuhanpei/article/details/51910349




判别模型与生成模型

机器学习的目标是得到一个模型使得其产生的行为(label)是我们所想看到的结果。那么我们如何来学习该模型呢?这里基于是否直接对P(Y|X)建模有两种策略:

第一种是判别式模型,即直接对P(Y|X)来进行建模,例如线性回归模型,SVM,决策树等,这些模型都预先制定了模型的格式,所需要的就是通过最优化的方法学到最优参数Θ即可;
第二种是生成式模型,这种策略并不直接对P(Y|X)进行建模,而是先对联合概率分布P(X,Y)进行建模,然后依据贝叶斯公式

P(Y|X)=P(X,Y)P(X)
间接的得到我们所期望的模型P(Y|X),这种策略最常见的算法就是我们接下来要介绍的贝叶斯分类器算法

贝叶斯分类器适用情况:对数据量大的问题十分适用


0. 基本知识

为了能更好的理解贝叶斯分类器,本节首先讲述有关概率的基础知识,为后面概率的推到打下基础。

加法公式

对于任意两个事件A,B,有 P(A∪B)=P(A)+P(B)−P(A∩B)

加法公式的示例如图0.1所示,图0.2将AUB分成两两不相容的三个事件I、II、III,则有,

A∪B=I∪II∪III,

A=I∪II,

B=II∪III,

于是,

P(A∪B)=P(I)+P(II)+P(III)=P(A)+P(B)−P(A∩B).



图0.1 两个事件的并事件



图0.2 A∪B分成两两不相容的三个事件
乘法公式与条件概率

事件A,B 同时发生的概率是:

P(A∩B)=P(A)P(B|A)=P(B)P(A|B)

公式中的 P(A|B)是指在事件B条件下事件A发生的概率,又称作条件概率。



图0.3 两个事件的交事件

贝叶斯法则

由P(A∪B)=P(B|A)P(A)=P(A|B)P(B)立得,
(此处最左边应该是A交B吧)

P(B|A)=P(A|B)P(B)P(A)

在机器学习中我们通常写为:

P(h|D)=P(D|h)P(h)P(D)

用P(h)表示在没有训练数据前假设h拥有的初始概率。P(h)被称为h的先验概率。先验概率反映了关于h是一正确假设的机会的背景知识。

机器学习中,我们关心的是P(h|D),即给定D时h的成立的概率,称为h的后验概率。

全概率公式

设S是实验E的样本空间,B1,B2,...,Bn是E的n个两两不相容的时间,且有B1∪B2∪...∪Bn=S,也就是说S划分成n个两两不相容的时间:B1,B2,...,Bn.

又若A是实验E的任一事件,则有

A=AS=A(B1∪B2∪...∪Bn)=AB1∪AB2∪...A∪Bn

其中


这样就将A分成n个两两不相容的事件:AB1,AB2,...,ABn.设P(B_{i})>0(i=1,2,…,n),就有

P(A)=∑i=1nP(ABi)=∑i=1nP(A|Bi)P(Bi)
我们称上述公式为全概率公式。





贝叶斯分类器


通过对两种建模策略的描述知道贝叶斯分类器算法的建模策略是第二种,即生成式模型。那么如何来对联合分布P(x,y)来建模呢?我依据贝叶斯公式知道P(x,y)=P(y)P(x|y),在这里称P(y)为标签y的先验概率,P(x|y)是样本x相对于标签y的条件概率(似然)。这样就把如何计算P(x,y)问题转换为了如何计算标签的先验概率P(y)和似然P(x|y)。

先验分布P(y)估计方法:

我们知道先验概率P(y)表示的是各个label在样本空间内所占的比例,依据大数定律可以知道当样本空间足够大,样本足够充足的时候,我们可以通过label对应样本出现的频率来对P(y)进行估计
似然P(X|Y)估计方法:

在这里通常有两种方法来进行估计:

一种是类似于先验分布,通过统计频率的方式来计算似然P(x|y),但是这里要涉及到计算各个不同属性的联合概率,当属性值很多且样本量很大的时候,估计会很麻烦;
第二种方式是使用极大似然法来进行估计。极大似然法是首先要假定条件概率P(x|y)服从某个分布,然后基于样本数据来对概率分布的参数进行估计。但是这种方法的准确性严重依赖于所假设的分布,如果假设的分布符合潜在的真实数据分布,则效果不错,否则效果会很糟糕。在现实应用中,这种假设通常需要一定的经验。

对于极大似然,记标签y的条件概率为P(x|y),假设P(x|y)有确定的形式且被参数向量Θ唯一确定,那么任务就是利用训练集来估计参数。将P(x|y)记为P(x|y;Θ)。因此对于参数Θ进行极大似然估计,就是在Θ的取值范围内寻找一组合适的参数使得P(x|y)最大,也就是找一组能够使得数据(x,y)出现的可能性最大的值。令Dy为训练集中标签为y的样本集合,假设样本都是独立同分布采样,那么参数Θ对于数据集Dy的对树似然为

L(Θ;y)=logP(Dy|Θ;y)=∑x∈DylogP(x|Θ;y)
那么参数Θ的极大似然估计θ^=argmaxL(Θ;y)


1. 贝叶斯决策论

有了第0节的基础概率知识之后,本节开始介绍贝叶斯决策论(Bayesian decision theory)。贝叶斯决策论是概率框架下实施决策的基本方法。

设有N 种可能的类别标记,即Y=c1,c2,...,cN,则基于后验概率P(ci|x)可获得将样本x分类为ci所产生的期望损失(也称条件风险)为:

R(ci|x)=∑j=1NλijP(cj|x)(1.1)
其中λij是将一个真实标记为cj标记成为ci产生的损失.

我们的目的是寻找一个方法使得条件风险最小化。为最小化总体风险,只需在每个样本上选择哪个能是条件风险R(c|x)最小化的类别标记,即

h∗(x)=argminc∈YR(c|x)(1.2)
这就是贝叶斯判定准则(Bayes decision rule)。

若目标是最小化分类错误率,则条件风险为

R(c|x)=1−P(c|x)(1.3)
其中λij为0/1损失函数。

所以,最小化分类错误率的贝叶斯最优分类器为

h∗(x)=argmaxc∈YP(c|x)(1.4)
也就是对每个样本x,选择能使后验概率P(c|x)最大的类别标记。

通常情况下P(c|x)很难直接获得,根据我们已知的条件概率知识对公式1.4进行化简得

h∗(x)=argmaxc∈YP(c|x)=argmaxc∈YP(x|c)P(c)P(x)=argmaxc∈YP(x|c)P(c)(1.5)
其中P(c)为先验概率,P(x|c)为样本x关于类别c的条件概率。这就是后验概率最大化准则。这样一来,根据期望风险最小化原则就可以得到后验概率最大化准则。

在某些情况下,可假定Y中每个假设有相同的先验概率,这样式子1.5可以进一步简化为公式1.6,只需考虑P(x|c)来寻找极大可能假设。

h∗(x)=argmaxc∈YP(x|c)(1.6)

综合以上讨论,当前求最小化分类错误率的问题转化成了求解先验概率P(c)和条件概率(也称似然概率)P(x|c)的估计问题。对于先验概率P(c)表达了样本空间中各类样本所占的比例,根据大数定理,当训练集包含充足的独立同分布样本时,P(c)可以通过各类样本出现的频率进行估计。整个问题就变成了求解条件概率P(x|c)的问题。


应用:


贝叶斯定理的应用:拼写检查

贝叶斯定理的一个应用就是拼写检查。我们定义正确的单词为c,错误的为w,当出现错误的时候,我们需要为用户提供最有可能的正确的单词。因此,这个问题就转化成了计算P(c|w),选取出最大的c。

由贝叶斯定理,我们可以知道:



由于对于所有备选的c来说,对应的都是同样的w,所以P(w)是固定的,我们只要最大化分子就行。

P(c)可以通过在语料库中找出现频率最高的单词来计算,而P(w|c)则可以通过计算正确与错误单词的相似程度来算,也即两个单词的编辑距离。所以,我们只需要比较所有拼写相近的词在文本库的出现频率,挑出最大的就行。


2. 极大似然估计

极大似然轨迹源自于频率学派,他们认为参数虽然未知,但却是客观存在的规定值,因此,可以通过优化似然函数等准则确定参数数值。本节使用极大似然估计对条件概率进行估计。

令Dc表示训练集D中第c类样本组成的集合,假设这些样本是独立同分布的,则参数θ(θ是唯一确定条件概率P(x|c)的参数向量)对数据集Dc的似然函数是

P(Dc|θ)=∏x∈DcP(x|θ)(2.1)

对2.1求对数似然函数

L(θ)=logP(Dc|θ)=log∏x∈DcP(x|θ)=∑x∈DclogP(x|θ)(2.2)

因此求得θ的极大似然估计θ^为

θ^=argmaxθL(θ)(2.3)

使用极大似然估计方法估计参数虽然简单,但是其结果的准确性严重依赖于每个问题所假设的概率分布形式是否符合潜在的真实数据分布,可能会产生误导性的结果。


3. 朴素贝叶斯分类器

从前面的介绍可知,使用贝叶斯公式来估计后验概率最大的困难是难以从现有的训练样本中准确的估计出条件概率P(x|c)的概率分布。朴素贝叶斯分类器为了避开这个障碍,朴素贝叶斯方法对条件概率分布作了条件独立性的假设。具体地,条件独立性假设是

P(x|c)=∏i=1dP(xi|c)(3.1)
有了条件概率的简化条件之后,我们很容易将公式1.5的贝叶斯准则改写为

h∗(x)=argmaxc∈YP(c|x)=argmaxc∈YP(c)∏i=1dP(xi|c)(3.2)

公式3.2就是著名的朴素贝叶斯的表达式。

下面对先验概率P(c)和条件概率P(xi|c)进行极大似然估计求得后验概率。

令Dc表示训练集D中第c类样本组成的集合,先验概率的似然估计为

P(c)=|Dc||D|(3.3)

对于离散属性而言,令Dc,xi表示Dc中在第i个属性上取值为xi的样本组成的集合,则条件概率P(x|c)的似然估计为

P(x|c)=∣∣Dc,xi∣∣|Dc|(3.4)

而对于连输属性需要考虑其密度函数。

朴素贝叶斯分类算法主要分成如下三步:

计算先验概率P(c)和条件概率P(x|c)
计算后验概率P(c|x)=P(c)∏di=1P(xi|c)
确定实例x的类h∗(x)=argmaxc∈YP(c)∏di=1P(xi|c)

拉普拉斯平滑:使用极大似然估计可能会出现所要估计的概率值为0的情况,这样会影响到后验概率的结果,最终使得推荐分类产生偏差。使用贝叶斯估计而已解决这一问题。具体地,条件概率的贝叶斯估计是

Pλ(x|c)=|Dc|+λ|Dc|+Nc∗λ(3.5)

当λ=1时称为拉普拉斯平滑(Laplace
smoothing)。

同样先验概率的贝叶斯轨迹为

Pλ(c)=∣∣Dc,xi∣∣+λ|D|+N∗λ(3.6)

显然,拉普拉斯平滑修正了因训练集样本不充分造成的概率为0的问题,并且在训练集变大时,估计值也逐渐趋向于实际的概率值。


4. 半朴素贝叶斯分类器

在现实任务中朴素贝叶斯的假设条件(属性条件独立)往往不成立,因此,在评估实际问题时朴素贝叶斯方法往往失去了部分精度,所以人们尝试对属性的独立性进行一定程度的放松,由此产生了半朴素贝叶斯分类器的学习方法。

半朴素贝叶斯分类器的基本思想是适当考虑一部分属性之间的相互依赖关系,从而既不需要完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。

独立依赖估计是半朴素贝叶斯分类器最常用的一种策略,也就是假设每个属性在类别之 外最多依赖于一个 其他属性,即

P(c|x)∝P(c)∏i=1dP(xi|c,pai)(4.1)
其中pai为xi所依赖的属性,称为xi的父属性。由于作者对半朴素贝叶斯的理解有限,下面就简单的介绍几种常见的半朴素贝叶斯分类器,对于细节不再进行展开,如果想了解更多半朴素贝叶斯分类器的朋友可以参考书籍[1]。图4.1给出了朴素贝叶斯属性间的依赖关系(图4.1(a))、SPODE属性间的依赖关系(图4.1(b))和TAN属性间的依赖关系(图4.1(c))。



图4.1 属性依赖关系(图片来源于[1])

SPODE(Super-Parent ODE)(超父独依赖估计):该方法假设所有属性都依赖于同一个属性,该属性被称为超父属性,如图4.1(b)所示x1是超父属性。
TAN(Tree Augmented naive Bayes):该方法是在最大权生成树的基础上,首先通过计算两两属性之间的条件信息求出各个边的权值,然后构建完全图的最大带权生成树,最后加入类别y,增加从y到每个属性的有向边。如图4.1(c)所示为TAN属性的依赖关系。


参考文献

[1]: 周志华. 《机器学习》[M]. 清华大学出版社, 2016.

[2]: 李航. 《统计学习方法》[M].清华大学出版社,2013.

[3]: Tom M Michele. 《机器学习》[M].机械工业出版社,2003.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  贝叶斯分类器