朴素贝叶斯的概率估计中的 m 应取什么

What should be taken as m in m estimate of probability in Naive Bayes

在朴素贝叶斯的概率估计中,m应该取什么?

所以对于这个例子

我应该取什么 m 值? 我可以把它当成1吗.
这里 p=先验概率=0.5。

那我可以取P(a_i|selected)=(n_c+ 0.5)/ (3+1)

对于朴素贝叶斯文本class化给定的 P(W|V)=

书中说这是通过让先验均匀并且m等于词汇表的大小从m估计中采用的。
但是如果我们只有 2 classes 那么 p=0.5。那么mp怎么可能是1呢?不应该是|vocabulary|*0.5吗? m-estimate这个方程是怎么得到的?


在计算属性职业的概率时,由于先验概率为0.5,取m=1

P(teacher|selected)=(2+0.5)/(3+1)=5/8  
P(farmer|selected)=(1+0.5)/(3+1)=3/8  
P(Business|Selected)=(0+0.5)/(3+1)= 1/8    

但是 class 概率加起来不应该是 1 吗?在这种情况下它不是。

是的,您可以使用 m=1。根据 wikipedia 如果你选择 m=1 它被称为拉普拉斯平滑。 m一般都是选小的(我看了也用m=2)。特别是如果你没有那么多样本,因为更高的 m 会使你的数据失真更多。

背景资料: 参数m也称为伪计数(虚例),用于additive smoothing. It prevents the probabilities from being 0. A zero probability is very problematic, since it puts any multiplication to 0. I found a nice example illustrating the problem in this book preview here(搜索伪计数)

我认为统一先验应该是 1/3,而不是 1/2。这是因为您有 3 个职业,所以您为每个职业分配了相同的先验概率。这样,mp=1,你列出的概率总和为1。

"m estimate of probability" 令人困惑。

在给定的例子中,m和p应该是这样的。

m = 3 (* this could be any value. you can specify this.)
p = 1/3 = |v| (* number of unique values in the feature)

如果你使用m=|v| then m*p=1,所以它被称为拉普拉斯平滑。 "m estimate of probability" 是拉普拉斯平滑的广义版本。

在上面的例子中你可能觉得 m=3 太多了,那么你可以像这样将 m 减少到 0.2。

来自 p = 均匀先验且 m 等于词汇表的大小。

将获得: