用于朴素贝叶斯分类器的Bernoulli模型的Laplace平滑

时间:2016-11-06 11:25:33

标签: machine-learning naivebayes bernoulli-probability

我必须实现一个朴素的贝叶斯分类器,用于将文档分类到类。因此,在获得属于类的术语的条件概率以及拉普拉斯平滑时,我们有:

prob(t | c)= Num(c类文档中出现的单词)+ 1 / Num(c类文档)+ | V |

它是一个bernoulli模型,它将具有1或0并且词汇量非常大,可能有20000个单词等等。因此,由于词汇量大,或者我做错了,laplace平滑不会给出非常小的值。

根据此链接的伪代码:http://nlp.stanford.edu/IR-book/html/htmledition/the-bernoulli-model-1.html,对于bernoulli模型,我们只需添加2而不是| V |。为什么这样?

1 个答案:

答案 0 :(得分:1)

考虑多项式朴素贝叶斯的情况。您在上面定义的平滑使得您永远不会得到零概率。

对于多变量/伯努利案例,还有一个额外的约束:不允许恰好为1的概率。这是因为当文档t中不存在来自已知词汇表的某些d时,1 - prob(t | c)的概率乘以文档概率。如果prob(t | c)为1,那么这将再次产生0的后验概率。

(同样,当使用日志时,log(1 - prob(t | c))在概率为1时未定义

因此,在伯努利方程(Nct + 1) / (Nc + 2)中,两种情况都受到保护。如果Nct == Nc,那么概率将是1/2而不是1.这也会产生1/2的可能性,无论t是否存在(P(t | c) == 1/2) (1 - P(t | c) == 1/2