2015-05-25
本博客中贝叶斯相关的文章:
本文以使用多项式贝叶斯模型为例。该模型在文本分类这一领域的正确率一般都比较高,而且有一个很大的有点,就是支持增量训练。
在该模型下:
先验概率P(c)= 类c下单词总数/整个训练样本的单词总数
类条件概率P(tk|c)=(类c下单词tk在该类下各个文档中出现过的次数之和+1)/(类c下单词总数+|V|)
|V|
是整个数据集中单词去重后的数量。
下面的数据来自基于naive bayes的文本分类算法。这篇文章中有一个小的计算失误(在计算新样本的类别时)。
文档ID | 文档内容 | 文档类别 |
---|---|---|
1 | Chinese Beijing Chinese | yes |
2 | Chinese Chinese Shanghai | yes |
3 | Chinese Macao | yes |
4 | Tokyo Japan Chinese | no |
由上面可以得到:
单词计数表:
单词\文档类别 | yes | no |
---|---|---|
Chinese | 5 | 1 |
Beijing | 1 | 0 |
Shanghai | 1 | 0 |
Macao | 1 | 0 |
Japan | 0 | 1 |
Tokyo | 0 | 1 |
汇总表:
属性 | 值 |
---|---|
单词总数 | 11 |
单词去重总数 | 6 |
属于yes的文档下的单词总数 | 8 |
属于no的文档下的单词总数 | 3 |
属于yes的文档数 | 3 |
属于no的文档数 | 1 |
根据上面的公式,有
P(yes) = 8/11
p(no) = 3/11
P(Chinese | yes)=(5+1)/(8+6)=6/14=3/7
P(Japan | yes)=P(Tokyo | yes)= (0+1)/(8+6)=1/14
P(Chinese|no)=(1+1)/(3+6)=2/9
P(Japan|no)=P(Tokyo| no) =(1+1)/(3+6)=2/9
所以,对于新样本Chinese Chinese Chinese Tokyo Japan
,有:
P(yes | d)
=P(Chinese|yes)×P(Japan|yes)×P(Tokyo|yes)*P(c)
=(3/7)^3×1/14×1/14×8/11
=216/739508
≈0.00029208
P(no | d)
= P(Chinese|no)×P(Japan|no)×P(Tokyo|no)*P(c)
=(2/9)3×2/9×2/9×3/11
=96/649539
≈0.00014780
故新样本属于yes这个分类。
根据上面的思路,可知数据库中需要两个表,一个单词计数表,一个汇总表,这两个表和上面的两个表格相同。
伯努利模型类似。