在朴素贝叶斯中的概率估计中的 m 应该被视为啥
Posted
技术标签:
【中文标题】在朴素贝叶斯中的概率估计中的 m 应该被视为啥【英文标题】:What should be taken as m in m estimate of probability in Naive Bayes在朴素贝叶斯中的概率估计中的 m 应该被视为什么 【发布时间】:2016-03-22 17:20:21 【问题描述】:在朴素贝叶斯的概率估计中,m 应该取什么? 所以对于这个例子
我应该取什么 m 值? 我可以认为是 1。 这里 p=先验概率=0.5。
那么我可以取 P(a_i|selected)=(n_c+ 0.5)/ (3+1)
对于朴素贝叶斯文本分类,给定的 P(W|V)=
在书中它说这是通过让 一致的先验和 m 等于词汇表的大小从 m 估计中采用的。
但是如果我们只有 2 个类,那么 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
但是类概率加起来不应该是 1 吗?在这种情况下不是。
【问题讨论】:
【参考方案1】:是的,您可以使用 m=1。根据wikipedia,如果您选择 m=1,则称为拉普拉斯平滑。 m 通常选择较小(我读到 m=2 也被使用)。特别是如果您总共没有那么多样本,因为较高的 m 会使您的数据更加扭曲。
背景信息:参数m也称为伪计数(虚例),用于additive smoothing。它可以防止概率为 0。零概率是非常有问题的,因为它将任何乘法都设为 0。我在本书预览here 中找到了一个很好的例子来说明这个问题(搜索伪计数)
【讨论】:
【参考方案2】:“m 概率估计”令人困惑。
在给定的例子中,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 概率估计” 是拉普拉斯平滑的广义版本。
在上面的例子中你可能认为 m=3 太多了,那么你可以像这样将 m 减少到 0.2。
【讨论】:
【参考方案3】:我认为统一的先验应该是 1/3,而不是 1/2。这是因为您有 3 个职业,因此您为每个职业分配了相等的先验概率。像这样,mp=1,你列出的概率总和为 1。
【讨论】:
【参考方案4】:从 p = 统一先验,m 等于词汇表的大小。
会得到:
【讨论】:
以上是关于在朴素贝叶斯中的概率估计中的 m 应该被视为啥的主要内容,如果未能解决你的问题,请参考以下文章