1、朴素贝叶斯(Naive Bayes),“Naive”在何处?
加上条件独立假设的贝叶斯方法就是朴素贝叶斯方法(Naive Bayes)。 Naive的发音是“乃一污”,意思是“朴素的”、“幼稚的”、“蠢蠢的”。咳咳,也就是说,大神们取名说该方法是一种比较萌蠢的方法,为啥?
将句子(“我”,“司”,“可”,“办理”,“正规发票”) 中的 (“我”,“司”)与(“正规发票”)调换一下顺序,就变成了一个新的句子(“正规发票”,“可”,“办理”, “我”, “司”)。新句子与旧句子的意思完全不同。但由于乘法交换律,朴素贝叶斯方法中算出来二者的条件概率完全一样!计算过程如下:
P((“我”,“司”,“可”,“办理”,“正规发票”)|S) =P(“我”|S)P(“司”|S)P(“可”|S)P(“办理”|S)P(“正规发票”|S) =P(“正规发票”|S)P(“可”|S)P(“办理”|S)P(“我”|S)P(“司”|S) =P((“正规发票”,“可”,“办理”,“我”,“司”)|S)
也就是说,在朴素贝叶斯眼里,“我司可办理正规发票”与“正规发票可办理我司”完全相同。朴素贝叶斯失去了词语之间的顺序信息。这就相当于把所有的词汇扔进到一个袋子里随便搅和,贝叶斯都认为它们一样。因此这种情况也称作词袋子模型(bag of words)。
2、处理重复词语的三种方式
我们之前的垃圾邮件向量(“我”,“司”,“可”,“办理”,“正规发票”,“保真”,“增值税”,“发票”,“点数”,“优惠”),其中每个词都不重复。而这在现实中其实很少见。因为如果文本长度增加,或者分词方法改变,必然会有许多词重复出现,因此需要对这种情况进行进一步探讨。比如以下这段邮件:
“代开发票。增值税发票,正规发票。” 分词后为向量: (“代开”,“发票”,“增值税”,“发票”,“正规”,“发票”)
其中“发票”重复了三次。
2.1多项式模型:
如果我们考虑重复词语的情况,也就是说,重复的词语我们视为其出现多次,直接按条件独立假设的方式推导,则有
P((“代开”,“发票”,“增值税”,“发票”,“正规”,“发票”)|S) =P(“代开””|S)P(“发票”|S)P(“增值税”|S)P(“发票”|S)P(“正规”|S)P(“发票”|S) =P(“代开””|S)P3(“发票”|S)P(“增值税”|S)P(“正规”|S) 注意这一项:P3(“发票”|S)
在统计计算P(“发票”|S)时,每个被统计的垃圾邮件样本中重复的词语也统计多次。
P(“发票”|S)=(每封垃圾邮件中出现“发票”的次数的总和)/(每封垃圾邮件中所有词出现次数(计算重复次数)的总和)
你看这个多次出现的结果,出现在概率的指数/次方上,因此这样的模型叫作多项式模型。
2.2伯努利模型
另一种更加简化的方法是将重复的词语都视为其只出现1次,
P((“代开”,“发票”,“增值税”,“发票”,“正规”,“发票”)|S) =P(“发票”|S)P(“代开””|S)P(“增值税”|S)P(“正规”|S)
统计计算 P(“词语”|S) 时也是如此。
P(“发票”|S)=(出现“发票”的垃圾邮件的封数)/(每封垃圾邮件中所有词出现次数(出现了只计算一次)的总和)