机器学习之朴素贝叶斯、贝叶斯网络

 

一、贝叶斯决策论

        贝叶斯决策论(Bayesian decision theory)是在概率框架下实施决策方案的基本方法。不要求分类器给出明确的分类结果,而是要给出一个最大概率的类别估计。基本思想是,利用已知类的条件概率和先验概率估计部分未知概率,应用贝叶斯公式转换为后验概率,根据期望损失最小化/后验概率最大化的方法得出最优决策。

        使用这种方法得到的模型是生成式模型,即对联合概率分布建模,再由此获得后验概率;与之对应的是判别式模型,即给定输入数据,直接对条件概率建模获得模型参数。

        相关公式和概念

        (1)先验概率P(A):在不考虑任何情况下,A发生的概率。

        (2)条件概率P(B|A):A事件发生的情况下,B事件发生的概率。

                P(B|A)=P(AB)/P(A)

        (3)后验概率P(A|B):在B事件发生后,对A时间发生概率的重新评估。

        (4)全概率:如果Ai构成样本空间的一个划分,那么B事件的概率为Ai的概率分别乘以B对这i个事件的概率之和。

                P(B)=ΣiP(Ai)*P(B|Ai)

        (5)边缘概率:是某个事件发生的概率,与其他事件无关。在联合概率中,把最终结果中不需要的那些事件合并成其事件的全概率而消失,即不再考虑其他事件的影响,实际上进行了降维的操作。

        边缘概率P(B)、联合概率、条件概率的关系:

                P(B)=ΣjΣiP(Ai ,Bj)=ΣjΣiP(Bj|Ai)P(Ai)

        (6)贝叶斯公式:

                


二、朴素贝叶斯法

        朴素贝叶斯(Naïve Bayes,NB)是基于‘特征之间是相互独立的’这一最简单的假设,应用贝叶斯决策论的监督学习算法。基于特征条件独立的假设学习输入输出的联合概率分布,对给定的输入x求出后验概率最大的输出y。由于假设属性之间独立,会损失一部分精度,可以用半朴素贝叶斯算法考虑部分关联性以适度改进。NB可以处理多分类问题,在数据较少的情况下仍然有效,适合增量式训练,对缺失数据不太敏感但对输入数据的准备方式较为敏感。

    1、朴素贝叶斯法推导

        m个数据的训练数据集D={(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))},其中x(i)=(x1(i),x2(i),...,xn(i))为n维向量,y(i)∈Y=(c1,c2,...,ck)有K种取值,则每个样本x(i)的类别概率可以由朴素贝叶斯法得到:

        

        对于所有类别来说P(x(i))相同,所以得到最大的后验概率作为x(i)的类别:

        

         

 

    2、NB参数估计

        先验概率为训练集中第k类样本数|Dk|除以总样本数|D|,k=1,2,...,K:

        

        条件概率的计算根据x分为离散型或连续型两种情况。

        (1)伯努利朴素贝叶斯

        当特征属性为离散型且服从伯努利分布,即每个特征的取值为0或1(在文本分类中就是一个单词出现或不出现),条件概率计算方法是:

            当特征xj(i)取值为1时,P(xj(i)|y(i)=ck)=P(xj(i)=1|y(i)=ck);

            当特征xj(i)取值为0时,P(xj(i)|y(i)=ck)=1-P(xj(i)=1|y(i)=ck) ——意味着’没有某个特征也是一个特征。

        可以将二者合并为一行来表示条件概率:

            P(xj(i)|y(i)=ck)=P(xj(i)=1|y(i)=ck)*xj(i)+[1-P(xj(i)=1|y(i)=ck)]*(1-xj(i))

 

        (2)多项式朴素贝叶斯

        当特征属性为离散型时,也可以假设其符合多项式分布,令Dk,aj表示Dk中第j维属性取值为aj的样本组成的集合,则条件概率可表示为:

        

        aj在训练时有可能没有与某个类同时出现过,|Dk,aj|值为0,导致连乘后计算出的后验概率为零;为了避免其他属性携带的信息被训练集中未出现的属性值‘抹去’,因此要使用平滑(smoothing)对未出现的事件赋予一个概率。引入平滑值λ∈[0,1],当λ=1时为Laplace平滑;当0<λ<1时为Lidstone平滑;当λ=0时不做平滑。

               

        其中Nj表示第j维属性可能的取值总数,n为x(i)的维数。

 

        多项式模型与伯努利模型的区别:多项式模型以单词为粒度,伯努利模型以文件为粒度;对于一个文档,多项式模型是只有在文档中出现过的单词才会参与后验概率的计算,而对伯努利模型,未在文档中出现,但在全局单词表中出现的单词,也会参与计算,不过是作为反方参与的。

 

        (3)高斯朴素贝叶斯

        对连续属性,假定条件概率服从正态分布,μk,jσk,j分别是第k类中的样本在第j维属性上取值的均值和标准差,则有:

        

 

    3、scikit-learn API of NB

        朴素贝叶斯分类器有多种使用方式。如果任务对预测速度要求较高,则对给定训练集,将NB涉及到的所有概率腹肌事先计算好并存储起来,要用的时候只需要‘查表’即可进行判别;如果任务数据更替频繁,则采用‘懒惰学习(lazy learning)’的方式,先不进行训练,在收到预测请求时再根据当前数据集进行概率估计;如果数据不断增加,则可在现有估值基础上实行增量学习,仅对新增样本的属性值所涉及的概率估值进行修正即可。

        当多个特征属性之间存在着某种相关关系时,就不能使用朴素贝叶斯法了,这时可以改用贝叶斯网络解决这类问题。

        

 

三、贝叶斯网络

        概率图模型PGM(Probabilistic Graphical Model)是用图形模式表达基于概率相关关系的模型的总称,结合了概率论与图论的知识,基本的图模型包括贝叶斯网络、马尔可夫网络(无向图)和隐马尔可夫网络等。

        贝叶斯网络(Bayesian Network)使用有向无环图DAG(Directed Acyclic Graph)描述属性之间的依赖关系,使用条件概率表CPT(Conditional Probability Table)描述属性的联合概率分布。一个贝叶斯网络B由结构G和参数Θ两部分构成,即B=<G,Θ>。

        G的每个结点对应于一个随机变量(可以是观察到的变量、隐变量、未知参数等),若两个随机变量有依赖关系/非条件独立,则把它们由一条边连接起来;Θ定量描述这种依赖关系,即每个变量与给定其父结点的条件概率。

        以Letter为例,父结点是Grade,子孙结点是job、Happy,所以Letter和SAT、Intelligence、Difficultly、Happy不通,在给定直接父结点时,结点与其直接后代结点以外的结点条件独立(图不通就独立)。

         

        条件独立是指,在给定Z的条件下X、Y独立(X⊥Y|Z),即X与Y满足:

                P(X, Y|Z)=P(X|Z)P(Y|Z);或者P(X|Y, Z)=P(X|Z)

 

        (1)一个简单的贝叶斯网络

                P(a,b,c)=P(c|a,b)P(b|a)P(a)

                

        (2)全连接贝叶斯网络

                每一对节点之间都有边连接

                P(x1,x2,...,xn)=P(xn|x1,x2,...,xn-1)...P(x2|x1)P(x1)=∏ni=2P(xi|x1,x2,...,xi-1)*P(x1)

                注意贝叶斯网络与链式法则的区别。

                

        (3)一般化的贝叶斯网络

                例如x1,x2,x3独立,x6x7在给定的条件下独立,则x1,x2,...,x7的联合概率为:

                P(x1,x2,...,x7)=P(x1)P(x2)P(x3)P(x4|x1,x2,x3)P(x5|x1,x3)P(x6|x4)P(x7|x4,x5)

                 

 

    贝叶斯网络判定条件独立

        (1)同父结构(common parent)

        在c给定的条件下,a和b被阻断(blocked)是条件独立的:

                P(a,b,c)=P(a|c)P(b|c)P(c)

                P(a,b|c)=P(a,b,c)/P(c)=P(a|c)P(b|c)

                tail-to-tail

                

        (2)顺序结构

        在c给定的条件下,a和b被阻断(blocked)是条件独立的:

                P(a,b,c)=P(a)P(c|a)P(b|c)

                ∴ P(a,b|c)=P(a,b,c)/P(c)=P(a,c)P(b|c)/P(c)=P(a|c)P(b|c)

                head-to-tail

                

         (3)V型结构

        在c未知的情况下,a和b被阻断(blocked)是条件独立的:

                P(a,b,c)=P(a)P(b)P(c|a,b)

                ΣcP(a,b,c)=ΣcP(a)P(b)P(c|a,b)

                ∴ P(a,b)=P(a)P(b)

                head-to-head

                

 

        贝叶斯网络使用图形的方法描述数据间的相互关系,直观、易于理解,对数据缺失、干扰较多的情况不敏感,能够充分利用领域知识和样本数据的信息,将先验信息与样本知识有机结合起来,在样本数据稀疏或数据较难获得的时候特别有效。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值