朴素贝叶斯文本分类

 

俺不是大牛啊,只能写写这种浅显的文章了,算是抛砖引玉吧

                             

naive bayes(朴素贝叶斯,下面简称NB ^_^)是ML中的一个非常基础和简单的算法,常常

用它来做分类,我用它做过text classification。现在的研究中大概已经很少有人用它来

实验了(除非是做base line),但确实是个很好的入门的算法,来帮助自己更加深刻的理

ML的本质。

首先从bayes公式开头吧

      PC/W = P(C) * P(W/C) / P(W)

这个公式是ML中最基本也是最常用到的公式,怎么强调它的重要性都不过分。为了更容易理解这个公式,我将bayes公式放在文本分类问题中进行解释。

 

公式的左边,C代表的是文本的类别(例如是体育或者娱乐),W往往是一个测试样本(例如某一篇新闻),P(C/W)代表的是这个样本归属于该类别的概率,我们实际中的任务常常就是要得到样本归属各个类别的概率值P(C1/W),P(C2/W)...P(CN/W),然后最大概率值所对应的类别Ci就是该样本被分配的类。

 

 

计算这个概率值的方法就是bayes公式的右边。

P(C)表示C这个类别在所有文本中的概率,是先验概率。实际中,这个值往往通过训练语

料计算得到,例如,将训练语料中所有的体育文本数除以训练语料总的文本数,就是体育这

个类别的先验概率。

P(W)则是通过这个公式计算:

        P(W) =  P(W/Ci) * P(Ci)

可以看出P(W)的计算可以通过 P(C)P(W/C)得到。

P(W/C)的计算下面将重点介绍。

现在的问题是怎样计算P(W/C)。在现实中,W这个样本往往是用向量表示的,包括了很多的分量 W = (w1, w2, w3,  ... wn) 所以 P(W/C) = P(w1, w2, w3,  ... wn / C)

NB的核心在于它假设向量的所有分量之间是独立的。

      Wi is independent of Wj, if i != j

对!这个假设就是NB的全部内容了,是不是很简单。有了这个假设,P(W/C)的计算就变为:

      P(W/C) = P(wi / C)

有人可能会问,那么 P(Wi / C)怎么求呢。以文本分类为例,将文本作为一个向量,那么Wi

的分量就是一个词在这个文本中是否存在。例如:

     Wi =  1   if  "乔丹" 在文本中出现

              0   otherwise

对于这个Wi,它的P(Wi / C体育) 就是统计所有的体育文章中有多少篇出现了“乔丹”这

词,然后用 出现篇章数 / 所有体育篇章数就是我们要的概率值了。

 

好了,终于写完了,回过头看,其实NB很简单,就是在bayes公式的基础上多了一个独立性假设,很好理解的。至于它的性能,各有各的说法,我认为很多时候你对于特征的提取和方法参数的设置更重要于算法本身,当然,that is another open question

                                                                                                                    

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值