文本分类——Naive Bayes

文本分类——Naive Bayes

 

1         Naive Bayes算法介绍

 说起贝叶斯算法,不得不先提到概率论与数理统计课程里面的条件概率公式,对于随机试验E有两个随机事件A,B,且P(B) > 0 那么在B事件发生的条件下A发生的概率为:

文本分类——Naive Bayes - zengkui111 - 北斗之首——魁
 其中P(AB)为A,B两个事件的联合概率。对上式利用乘法公式可以变形为:
文本分类——Naive Bayes - zengkui111 - 北斗之首——魁
这样就得到了贝叶斯公式。贝叶斯文本分类就是基于这个公式,利用先验概率来得到文本的分类。
文本分类——Naive Bayes - zengkui111 - 北斗之首——魁
 

其中  为第i个文本类别出现的概率,  为文本类别为Ci时出现特征向量(w1,w2…wn)的概率,P(w1,w2…wn)为特征向量出现的概率。一般的会假设特征——词,在文本中出现的概率是独立的,也就是说词和词之间是不相关的(虽然这个不一定成立,但是为了简化计算往往又不得不这么做),那么这时候的联合概率就可以表示为乘积的形式,如下:

文本分类——Naive Bayes - zengkui111 - 北斗之首——魁
 

对于特定的训练集合来说,上式中P(w1)P(w2)…P(wn)是一个固定的常数,那么在进行分类计算的时候可以省略掉这个分母的计算,如是得到:

文本分类——Naive Bayes - zengkui111 - 北斗之首——魁
 

这样,只需要计算给定文本和各个类别之间的条件概率值,取最大的那个概率值所在的类别代表文本的类别就行了。

2         参数训练

在贝叶斯分类器训练的时候,依照前面的公式可以知道,需要训练的参数有:

1.         P(Ci) : 各个类别在所有的文档中出现的概率,这个只需要统计各个文本类别的数量,然后除以所有文档数就是需要的参数了。

文本分类——Naive Bayes - zengkui111 - 北斗之首——魁
 

2.         P(w|C): 各个词在各个类别中出现的概率,在类别C中出现了w的文档数除以C类文档总数

文本分类——Naive Bayes - zengkui111 - 北斗之首——魁
 

3         代码实现

https://github.com/zengkui/machine-learning/blob/master/Naive-Bayes/naive_bayes.py

在参数训练中,选定的特征——词,是事先从信息增益算法挑选出来的。

4         模型评价

选取搜狗实验室的分类语料:商务类新闻和娱乐类新闻各100篇作为分类样本,测试集中商务类新闻文章19926篇,娱乐类新闻文章11987篇。其中商务类标记为正样本,娱乐类标记为负样本。

                  分类结果:

Positive recall :94.817346%

Positive precision :95.778910%

Accuarcy : 94.044275%

                 这样的结果对于其他分类起来将都已经是非常好的结果了。

5         模型的优缺点

贝叶斯分类模型很大的一个优点就是训练过程非常简单,甚至是可以做到增量式训练,特征是对海量的训练集表现非常高效。

另外一个优点就是,模型的可读性也是比较强的,对于分类得到的结果可以进行解释。

最大的缺点,也就是一开始的假设,在现实世界中,特征属性之间往往是不独立的,所以在相关性很强的特征里使用此模型得到的分类结果会比较差。

                                              

原地址url:http://zengkui.blog.163.com/blog/static/21230008220121012102727140/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值