贝叶斯分类器

本文摘抄自《机器学习》一书,作者:周志华

  • 贝叶斯分类器

对分类任务来说,在所有相关概率都已知的理想条件下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。以多分类任务为例进行解释。

假设有N种可能的类别标记(好瓜或者坏瓜等类别),即y=\left \{ c_1,c_2,...,c_N \right \}\lambda _{ij} 是将一个真实分类为c _{j}的样本误分类为c _{i}所产生的损失。基于后验概率p(c_{i}\mid x)可获得将样本x分类为c _{i}所产生的期望损失,即在样本x上的条件风险:

                                                                   R(c_{i}\mid x)=\sum_{j=1}^{N}\lambda _{ij}P(c_{j}\mid x)

因此我们需要寻找一个判定准则h,以最小化总体风险:

                                                                   R(h)=E_{x}\left [ R(h(x)\mid x) \right ]

显然,对于每个样本x,若h能最小化条件风险R(h(x)\mid x) \right,则总体风险R(h)也将被最小化。这就产生了贝叶斯准则:为最小化总体风险,只需在每个样本上选择那个能使条件风险R(c\mid x)最小的类别标记,即:

                                                                    h^{*}(x)=\underset{c\epsilon y}{argmin}R(c\mid x)

此时h^{*}称为贝叶斯最优分类器,与之对应的总体风险R(h^{*})称为贝叶斯风险。

具体来说,若目标是最小化分类错误率,则误判损失\lambda _{ij}可写为\lambda _{ij}=\left\{\begin{matrix} 0, & i=j\\ 1,& otherwise \end{matrix}\right.,此时条件风险为:

                                                                   R(c\mid x)=1-P(c\mid x)

于是,最小化分类错误率的贝叶斯最优分类器为:

                                                                   h^{*}(x)=\underset{c\epsilon y}{argmax}P(c\mid x)

因此,想要使用贝叶斯判定准则来最小化决策风险,首先要获取后验概率P(c\mid x)。然而在现实任务中这通常难以直接获得。从这个角度来看,机器学习所要实现的是基于有限的训练样本尽可能准确的估计出后验概率P(c\mid x)总体来说,主要有两种策略:给定x,可通过直接建模P(c\mid x)来预测c,这样得到的是“判别式模型”(决策树、BP神经网络、支持向量机)。也可先对联合概率分布P(x,c)建模,然后再由此获得P(c\mid x)这样得到的是“生成式模型”(贝叶斯)。接下来我们介绍生成式模型:

                                                                         P(c\mid x)=\frac{p(x,c)}{p(x)}

基于贝叶斯定理,P(c\mid x)可写为:

                                                                         P(c\mid x)=\frac{p(c)p(x\mid c)}{p(x)}

其中,P(c)是类(即类别,如好瓜、坏瓜等)先验概率,p(x\mid c)是样本x相对于类标记c的类条件概率,或称为“似然”。P(x)是用于归一化的证据因子,对给定样本x,证据因子P(x)与类标记无关。因此估计P(c\mid x)的问题就转化为如何基于训练数据D来估计先验概率P(c)和似然p(x\mid c)

类先验概率P(c)表达了样本空间中各类样本所占的比例,根据大数定律,当训练集包含充足的独立同分布样本时,P(c)可通过各类样本出现的频率进行估计。对类条件概率p(x\mid c)来说,由于他涉及关于x所有属性的联合概率,直接根据样本出现的频率进行估计将会遇到严重的困难,因此我们使用极大似然估计,具体介绍可参看我的另一篇博客

朴素贝叶斯分类器

基于贝叶斯公式估计后验概率P(c\mid x)的主要困难在于:类条件概率p(x\mid c)是所有属性上的联合概率,难以从有限的训练样本直接估计得到,为了避开这个障碍,朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。

基于属性条件独立性假设,贝叶斯公式可重写为:

                                                          P(c\mid x)=\frac{p(c)p(x\mid c)}{p(x)}=\frac{p(c)}{p(x)}\prod_{i=1}^{d}P(x_{i}\mid c)

其中d是属性数目,x_{i}为x在第i个属性上的取值。

对于所有类别来说P(x)相同,因此朴素贝叶斯表达式为:

                                                                h^{*}(x)=\underset{c\epsilon y}{argmax}P(c)\prod_{i=1}^{d}P(x_{i}\mid c)

显然,朴素贝叶斯分类器的训练过程就是基于训练集D来估计类先验概率P(c),并为每个属性估计条件概率P(x_{i}\mid c)

D_{c}表示训练集D中第c类样本组成的集合,若有充足的独立同分布样本,则可容易的估计出类先验概率:

                                                                                   P(c)=\frac{\left | D_{c} \right |}{\left | D \right |}

离散属性而言,令D_{c,x_{i}}表示D_{c}中在第i个属性上取值为x_{i}的样本组成的集合,则条件概率P(x_{i}\mid c)可估计为:

                                                                                  P(x_{i}\mid c)=\frac{\left |D_{c,x_{i}} \right |}{\left | D_{c} \right |}

对连续属性而言可考虑概率密度函数,假定P(x_{i}\mid c)~N(\mu _{c,i},\sigma ^{2}_{c,i}),其中\mu _{c,i}\sigma ^{2}_{c,i}分别是第c类样本在第i个属性上取值的均值和方差,则有:

                                                               P(x_{i}\mid c)=\frac{1}{\sqrt{2\pi }\sigma _{c,i}}exp(-\frac{(x_{i}-\mu _{c,i})^{2}}{2\sigma ^{2}_{c,i}})

下面我们用西瓜数据集训练一个朴素贝叶斯分类器,并对一个测试例进行分类:

已知西瓜数据集
测试例

为了避免其他属性携带的信息被训练集中未出现的属性值抹去,在估计概率值时通常要进行平滑,常用“拉普拉斯修正”。具体来说,令N表示训练集D中可能的类别数,N_{i}表示第i个属性可能的取值数,则类先验概率和条件概率的式子可修正为:

                                                                      P\hat{}(c)=\frac{\left | D_{c} \right |+1}{\left | D \right |+N}

                                                                    P\hat{}(x_{i}\mid c)=\frac{\left |D_{c,x_{i}} \right |+1}{\left | D_{c} \right |+N_{i}}

显然,拉普拉斯修正避免了瘾训练集样本不充分导致概率估值为0的问题,并且在训练集变大时,修正过程所引入的先验的影响会逐渐变的可忽略。

  • 半朴素贝叶斯分类器

为了降低贝叶斯公式中估计后验概率P(c\mid x)的困难,朴素贝叶斯分类器采用了属性条件独立性假设,但在现实任务中这个假设往往很难成立。于是产生了“半朴素贝叶斯分类器”。

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

                                                              P(c\mid x)=P(c)\prod_{i=1}^{d}P(x_{i}\mid c,pa_{i})

其中pa_{i}为属性x_{i}所依赖的属性,称为x_{i}的父属性。此时,对每个属性x_{i},若其父属性pa_{i}已知,就可以估计概率值P(x_{i}\mid c,pa_{i})。于是,问题的关键就转化为如何确定每个属性的父属性,不同的做法产生不同的独依赖分类器。

主要有三种独依赖分类器:SPODE、TAN、AODE

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值