代码改变世界

朴素贝叶斯模型(NB model)

2013-05-08 16:58  夜与周公  阅读(1667)  评论(0编辑  收藏  举报

  本节开始介绍第一个生成式模型:朴素贝叶斯模型(NB model)。生成式模型与判别式模型的区别在于,生成式模型对样本的联合分布建模:

                                   

因此我们需要求出样本的类别分布p(y)与,样本类概率分布p(x|y)。生成式模型的困难在于p(x|y)计算,有时我们很难去估计类概率分布。因此,我们会做出一些假设,Naive Bayes Assumption 是指:样本在给定类别的条件下,各个特征之间相互独立:

                                       

根据p(xi|y)分布的假设不同,我们可以分成两种假设模型:muti-variate Bernouli model 与 multinomial event model,以下将分两个部分介绍这两种模型。

  1.muti-variate Bernouli model

  这种模型对应于文本分类中,特征权重是BOOL型表示方法,仅关心文本中是否出现某个词。假设当前样本集的字典V=[v1,v2,v3...v|k|],字典的每一个词对应一次Bernouli实验。对于某个样本x=[t1,t2,t3...t|v|],其类概率密度:

          

记Θi|j=p(ti|cj),Θj=p(y=cj)。因此样本的联合概率分布可以写成:

          

 对于训练集{(xk,yk)}(k=1,2,3,...m),其最大似然估计:

          

其中满足条件:

                               

采用拉格朗日乘子法,可以求得:

           

  2.Mutinomianl event model

  多项式模型对应文本中的词频特征权重(Term Frequency),不仅关系某个词是否出现,而且还关心起在文档里出现的次数。假设一篇文档x=[w1,w2,...w|h|,...w|x|]其中w|h|表示文档x第h个单词,在贝叶斯假设下类概率密度函数:

            

使用词典模型表示该篇文档x=[t1,t2,...t|v|],其中ti 表示字典第i个词在文档中出现的次数,因此上式可以改下成:

            

因此,样本的联合概率分布:

                            

对于样本集:D={(xk,yk)}  (k=1,2...N),最大似然估计:

           

其中满足条件:

                                

采用拉格朗日乘子法:

            

  ps:老板写的Naive Bayes开源工具,上面的推导也是老板的一个课件内容整理。

          地址:http://www.openpr.org.cn/index.php/NLP-Toolkit-for-Natural-Language-Processing/43-Naive-Bayes-Classfier/View-details.html