原帖由 key 于 22-5-2009 17:09 发表
假设我们现在已经获取了所有的P(S|Wi)的值,也就是说,对于每个单词,如果它出现在邮件中,
这封邮件可能是垃圾邮件的概率贡献值我们已经知道了。那我们怎样来应用它呢?
如果假设pi = P(S|Wi),我们可以得到下面 ...
我建议看一下wikipedia....
首先
Wi并没有说是互相独立的,naive bayes只假设在给定分类时,wi是条件独立的
所以你公式里分解P(w1, w2, ..., wm) = p(w1) p(w2) ... p(wm)是做不到的
其次,分类器只需要计算两个类概率的相对大小,也就是说,到底是P(S|w1, w2, ..., wm)的概率大还是P(H|w1, w2, ..., wm)的概率大,取个比值就行了,
原式中复杂的分母就被约掉了。
P(S|w1,w2,...) = 1/P(w1,w2...) * P(w1,w2,...|S) * P(S), 由条件独立假设, = 1/P(w1,w2...) * P(w1|S) * P(w2|S) * ... * P(S)
P(H|w1,w2,...)也有类似的分解,然后求个比值,1/P(w1,w2...)项被约掉
ratio = P(S|w1,w2...) / P(H|w1,w2...) = ( P(w1|S) * P(w2|S) * ... * P(S) ) / ( P(w1|H) * P(w2|H) * ... * P(H) )
ratio 大于1说明是S,否则是H
或者还可以对ratio取个log,这样乘法都变加法,log ratio大于0说明是S,否则是H |