机器学习所研究的主要内容,是关于在计算机上从数据中产生“模型”的算法,这个产生的模型大体上可以分为“判别式模型”和“生成式模型”两大类。

其中判别式模型是给定x,通过直接对条件概率分布P(y|x)进行建模来预测y。这种方法寻找不同类别的最优分类面,反映的是异类数据之间的差异。之前几篇文章中介绍的SVM、决策树、线性模型等都是属于判别式模型。

生成式模型则是先对联合概率分布P(x,y)建模,然后再由此获得P(y|x)。对后验概率建模,从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。我们本篇文章介绍的贝叶斯分类器和后面将要介绍的隐马尔科夫模型都是属于生成式模型。

目录

一、从分类任务说起

二、朴素贝叶斯分类器

三、半朴素贝叶斯分类器与贝叶斯网


一、从分类任务说起

给定数据集D={(x1,y1),(x2,y2),(x3,y3),……,(xn,yn)},其中xi为第i组数据的属性集合,yi为第i组数据的标记。分类任务的目标旨在习得一个从xi到yi的映射f(xi)=yi,所以用于分类的机器学习算法的任务就是依据x的特征与标记y的关系来构造分类器f。

在线性模型中,我们假设x的特征(a1,a2,…,an)与标记y之间存在着一种线性关系,即

而在贝叶斯分类器中,我们假设标记y的取值与x的特征(a1,a2,…an)服从某种特殊的分布。

为了方便理解,这里举一个例子

假如y的可能类标记有m种,即y={c1,c2,…,cm}。

当x=x1时,我们不像判别式模型那样直接预测出x1的标记,而是算出此时y取不同值的概率,即

P(c1|x1)、P(c2|x1)、……、P(cm|x1)

然后基于“最小化条件风险”的策略,从上述m个概率中选择最优的一个,取其中的ci作为x1的预测标记。

最小化条件风险的定义如下:

假设有N种可能的类别样本,即

,

是将一个真实标记为cj的样本误分类为ci所产生的损失。基于后验概率P(ci|x)可获得将样本x分类为ci所产生的期望损失,即在样本x上的“条件风险”

为了便于介绍接下来的内容,这里再复习一下贝叶斯公式


二、朴素贝叶斯分类器

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

基于属性条件独立性假设,上式可重写为

其中ai为x在第i个属性上的取值

由于对所有类别来说P(x)相同,因此,上式又可以简化为

这就是朴素贝叶斯分类器的表达式,显然,朴素贝叶斯分类器的训练过程就是基于训练集D来估计先验概率P(c),并为每个属性估计条件概率P(ai|c)

此外,为了避免其他属性携带的信息被训练集中未出现的属性值“抹去”(例如:训练集中属性a1的取值只有1和2两个值,但在测试时却出现了新的值3,因为P(a1=3|c)=0,会直接导致

),在估计概率值时通常要进行“平滑”,常用“拉普拉斯修正”。具体来说,令N表示训练集D中可能的类别数,

表示训练集D中第c类样本的集合,

表示Dc

中在第i个属性上取值为ai的样本组成的集合,Ni

表示第i个属性可能的取值数。

则有:

显然,拉普拉斯修正避免了因训练集样本不充分而导致概率估值为零的问题。


三、半朴素贝叶斯分类器与贝叶斯网络

为了降低贝叶斯公式中估计后验概率P(c|x)的困难,朴素贝叶斯分类器采用了属性条件独立性假设,但在现实任务中这个假设往往很难成立。于是,人们尝试对属性条件独立性假设进行一定程度的放松,由此产生了一类称为“半朴素分类器(semi-naive Bayes classifiers)”的学习方法。

半朴素贝叶斯分类器的基本想法是适当考虑一部分属性间的相互依赖信息,从而既不需进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。“独依赖估计”是半朴素贝叶斯分类器最常用的一种策略。顾名思义,所谓“独依赖”就是假设每个属性在类别之外最多仅依赖于一个其他属性,

贝叶斯网(Bayesian network)亦称“信念网”,它借助有向无环图(Directed Acyclic Graph,简称DAG)来刻画属性间的依赖关系,并使用条件概率表(Conditional Probability Table,简称CPT)来描述属性的联合概率分布。半朴素贝叶斯分类器中常用“独依赖估计”的策略,而贝叶斯网则表示能力更强,可以表示属性间的多依赖关系。

一个贝叶斯网的例子

参考文献

1、 周志华,《机器学习》

2、 Lxjshuju,从贝叶斯方法谈到贝叶斯网络

cnblogs.com/lxjshuju/p/