天天看点

朴素贝叶斯简记朴素贝叶斯分类器扩展

朴素贝叶斯分类器

naive bayes classifier。

以前曾记得语文老师多次提到,即使是同一篇文章,在不同的时间阅读,也会有不同的感受,温习一下贝叶斯分类器。

概率模型

首先是一个条件概率模型,也就是说,我们有了很多历史知识(训练数据),可以计算出先验概率,利用先验概率,对未来的情况做预测。举个例子:

刮大风(特征1)、飘来乌云(特征2),远处有雷声(特征3),结果下雨了。在生活中,大量存在类似重复事件,那么一个人通过这些数据,在脑海里得出一个先验概率的数学模型,一旦出现这些特征,可以预测“下雨”的概率很大。

“以史为鉴可以知兴衰”,其中的道理如出一辙。

回到数学模型里来:

特征向量: x1,x2,...,xn , 共 n 个维度,xi为特征。

特征的选取是非常重要的,往往决定成败。比如:如果选择隔壁家李奶奶是否买菜这个特征来预测下雨,那么大概率是失败的。读历史,里面的特征非常之多,而且在不同的历史时期,不同特征所起的作用不同,如果悟不出规律,那对未来历史趋势的把握也是不准确的。

特征向量: X=(x1,x2,...,xn)

分类标签: C={C1,C2,...,Cm},Ck∈C,m=|C|

训练样本: p(X,Ck)

目标公式: p(Ck|x1,...xn) 找到合适的 Ck

推导过程:

p(Ck|X)=p(Ck)p(X|Ck)p(X)=λp(Ck,X)=p(Ck,x1,...,xn)=p(Ck)p(x1,...,xn|Ck)=p(Ck)p(x1|Ck)p(x2|Ck)...p(xn|Ck)=p(Ck)∏i=1np(xi|Ck)

1:p(X)=λ为常量,因为在后续找最大类别的过程,这个值都是一样的,不需要计算。

2:特征之间是独立的.

目标公式重新定义,则是找到最大概率( Maximum_a_posteriori_estimation)的那个类别

y^=argmaxk∈{1,2,...,m}  p(Ck)∏i=1np(xi|Ck)

仔细分析上述问题,需要计算的变量基本上就两个:第一个,类别的统计分布;第二个,每个类别下的特征的统计分布。如果用下雨天(假设还有晴天,两个类别),那么我们要做的就是:统计雨天和晴天的比例;以及下雨天刮风等特征的出现次数等,即完成了模型的训练。

文本分类

如果应用到文本分类,我们主要看两类方法来计算 y^ 。

多项式模型(multinomial model)

y^=argmaxk∈{1,2,...,m}  p(Ck)∏i=1np(ti|Ck)

其中,特征变为 ti ,在文本分类多项式模型里,用的是词(term)作为特征,重复的词会计算,特征值是词频。而下面的伯努利模型主要依赖于出现与否的特征,用的是document的粒度。

进一步推导:

p(Ck)∏i=1np(ti|Ck)=NkN∏i=1np(ti|Ck)=NkN∏i=1nTCk,tiTCk

其中

N:总的文档个数;Nk:Ck类别的文档个数;TCk,ti:属于Ck类别下的ti(term)的总数(词频相加);TCk:属于Ck类别下的所有term的总数(词频相加);

伯努利模型(Bernoulli model)

推导:

p(Ck)∏i=1np(ti|Ck)=NkN∏i=1np(ti|Ck)=NkN∏i=1nDCk,tiDCk

其中

N:总的文档个数;Nk:Ck类别的文档个数;DCk,ti:Ck类别下的包含ti(term)的文档总数;DCk:Ck类别下的所有文档的总数;

小结

多项式模型(multinomial model)即为词频型和伯努利模型(Bernoulli model)即文档型。二者的计算粒度不一样,多项式模型以单词为粒度,伯努利模型以文件为粒度,因此二者的先验概率和类条件概率的计算方法都不同。下面的截图来自斯坦福大学的NLP组的文档,应该比较权威,请参考。建议大家阅读的时候尽量参考权威资料。

朴素贝叶斯简记朴素贝叶斯分类器扩展

一个简单应用

很多搜索引擎都有搜索日志以及后续的点击序列,经过简单收集,每行的格式如下:

channel,query,frequency

;就是频道,搜索词,频度。

一些例子:

channel frequency query
IMAGE 344585 性感
MP3 266516 周杰伦
GAME 76792 植物大战僵尸

对上述的数据用贝叶斯多项式模型训练后,用得到的模型进行分类。可以作为搜索引擎用户意图识别的基础模块。

识别效果:

天下霸唱
/********The result of Bayes:*******/
[NOVEL  , WML   , MP3 ]

黄海波嫖娼
/********The result of Bayes:*******/
[NEWS   , WML  , VIDEO  , IMAGE   ]
           

天下霸唱,识别后的用户意图:小说、网页和音乐。从最后使用的效果来看,贝叶斯模型可以比较好的训练日志数据,并具有一定的扩展性,速度极快,效果不错。

最终的效果应该由三部分组成:日志语料的分布和质量、训练模型选择是否合理、参数调整。

扩展

如果对Query Intent Detection这个感兴趣的,可以用百度公开的搜索词日志数据进一步的研究。百度的数据加入了session的概念,还有点击url的title信息,更为全面。地址:

http://openresearch.baidu.com/activitycontent.jhtml?channelId=769

当然,如果提高精度,可以结合更多机器学习的方法,一直以为,最终的模型应该是层次化的,而且每层的训练都应该有不同的训练模型得出,毕竟每个模型可能都有优缺点,相互结合。

参考文献

http://nlp.stanford.edu/IR-book/pdf/13bayes.pdf

https://en.wikipedia.org/wiki/Naive_Bayes_classifier

http://openresearch.baidu.com/activitycontent.jhtml?channelId=769

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.217.2299&rep=rep1&type=pdf

继续阅读