朴素贝叶斯分类器的分类
朴素贝叶斯分类器通常有两种实现方式,
(1)基于贝努利模型实现,
所谓贝努利模型,即为 0-1 模型;
对于文本分类而言,不考虑词在文中出现的次数,只考虑出不出现,因此在这个意义上将词是等权重的;(2)基于多项式模型实现
考虑词在文档中的出现次数;
从一个合理的推测开始(Starting with a reasonable guess)
对于文本分类(过滤)问题,我们计算条件概率 p(w1,…,n|c1…,k) (在某一类别的前提下,出现该属性的次数)。这里存在一个问题,只根据以往见过的信息,会令其在训练的初期阶段,对那些极少出现的单词异常敏感。
如,在某一训练用的样本数据中,单词”money”只在一篇文档中出现过,并且由于这是一篇涉及赌博的广告,因此文档被划归为“bad”类。由于单词“money”只在一篇“bad”类的文档中出现过,而任何“good”类的文档中均未出现该词。所以利用条件概率计算所得的单词“money”在“good”分类出现的概率为0.这样做有些偏激,因为“money”可能完全是一个中性词,只是恰好先出现在一篇“bad”类的文档中而已。随着单词越来越多地出现在同属于一个分类的文档中,其对应的概率值也逐渐接近于0,这样会更合理一些。
为了解决上述问题,当我们手头掌握的有关当前属性的信息极为有限时,我们还需根据一个假设的概率来作出判断。一个推荐的初始值(reasonable guess,assumption)是0.5,我们还需为假设的概率值赋以多大的权重(weight)。经过加权的概率值返回的是概率的加权平均。
选择分类
在垃圾信息过滤的例子中,避免将普通邮件当成垃圾邮件要比截获每一封垃圾邮件更为重要(宁可漏掉一千,不可错杀一个)。
为了解决这一问题,可以为每一个分类定义一个最小阈值。以垃圾邮件过滤为例,例如过滤掉“bad”分类的阈值为 3,则针对“bad”分类的概率就必须至少3倍于针对“good”分类的概率才可以(P(bad)>3P(good)),此时如果预测为 “bad” 的分类小于其他任何一个分类的三倍,都不会将其预测为“bad”(P(bad) < 3P(others)),具体的预测取决与业务逻辑,比如返回“unknown”。加入针对“good”分类的阈值为1.,则对于任何邮件,只要P(good)>P(bad),它就是属于 “good”分类的。