朴素贝叶斯特征概率:我应该重复计算单词吗?

机器算法验证 分类 条件概率 朴素贝叶斯
2022-03-02 10:14:55

我正在制作我自己的 Naive Bayes bag o' words 模型的原型,并且我有一个关于计算特征概率的问题。

假设我有两个类,我将只使用垃圾邮件和非垃圾邮件,因为这是每个人都使用的。让我们以“伟哥”这个词为例。我的训练集中有 10 封电子邮件,5 封垃圾邮件和 5 封非垃圾邮件。“伟哥”出现在所有 5 个垃圾邮件文档中。在其中一份培训文档中,它出现了 3 次(这是我的问题所在),因此总共出现了 7 次垃圾邮件。在非垃圾邮件训练集中,它出现了 1 次。

如果我想估计 p(viagra | spam) 是不是很简单:

p(viagra | spam) = 5 个垃圾邮件文档包含伟哥 / 5 个垃圾邮件文档总数 = 1

换句话说,一份文件提到伟哥 3 次而不是一次这一事实真的不重要吗?


编辑:这是一篇博文,作者使用了我刚刚提出的方法: http ://ebiquity.umbc.edu/blogger/2010/12/07/naive-bayes-classifier-in-50-lines/

这是一篇博文,作者说:p(viagra | spam) = 7 次伟哥垃圾邮件提及 / 8 次总提及 http://www.nils-haldenwang.de/computer-science/machine-learning/how-to-apply -naive-bayes-classifiers-to-document-classification-problems

然后下面的答案之一说它应该是:p(伟哥|垃圾邮件)= 7 伟哥在垃圾邮件中提到/垃圾邮件中的总字数

任何人都可以链接到对此发表意见的来源吗?

3个回答

换句话说,一份文件提到伟哥 3 次而不是一次这一事实真的不重要吗?

这很重要。多项式朴素贝叶斯模型考虑了令牌的每次出现,而伯努利朴素贝叶斯模型没有考虑(即对于后一种模型,“伟哥”出现 3 次与“伟哥”出现 1 次相同)。

以下是 {1} 中的两个插图和比较表:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

{1} 巧妙地引入了用于文本分类的朴素贝叶斯,以及多项朴素贝叶斯模型和伯努利朴素贝叶斯模型。


参考:

  • {1} Christopher D. Manning、Prabhakar Raghavan 和 Hinrich Schütze。信息检索导论”,2009 年,第 13 章文本分类和朴素贝叶斯

这取决于您应用的特定幼稚模型。一般来说,对于文本分类,您确实需要考虑术语的重复,所以答案是肯定的。

另一点是您正在考虑基于文档事件空间的概率。您也可以根据术语空间进行操作:

p(viagra | spam) = 5 次垃圾邮件类垃圾邮件/50 个类垃圾邮件

您在这篇 [论文] ( http://echo.edres.org:8080/betsy/mccallum1.pdf )中有很多信息

我认为这取决于您对 p(viagra|spam) 的确切含义以及您如何对数据进行建模。

如所写,我会将您的意思解释为“鉴于此消息是垃圾邮件,伟哥一词在消息中至少被提及一次的概率”。在那种情况下,是的,一份文件提到伟哥三次的事实没有任何效果。您已经定义了一个不关注这些事实的模型。

当然,你可以有不同的模型。例如,不是用二元变量(存在/不存在)表示伟哥,而是可以表示单词在消息中出现的次数的计数。在这种情况下,根据您的原始数据,您可以估计类似的经验频率

p(伟哥=0|垃圾邮件)= 0

p(伟哥=1|垃圾邮件)= 4/5

p(伟哥=2|垃圾邮件)= 0

p(伟哥=3|垃圾邮件)= 1/5

等等

我并不是说这是更好的方法。我只是在说明另一种情况,在这种情况下,您的直觉认为伟哥提到了三次是相关的。

一个更实际的例子可能是“词频-逆文档频率”,这是一种非常关注文档中单词频率的方法。