我正在实施用于垃圾邮件过滤的朴素贝叶斯分类器。我对一些计算有疑问。请澄清我该怎么做。这是我的问题。
在这种方法中,您必须计算
P(S|W) -> 消息是垃圾邮件的概率,给定单词 W 出现在其中。
P(W|S) -> 单词 W 出现在垃圾邮件中的概率。
P(W|H) -> 单词 W 出现在 Ham 消息中的概率。
所以要计算 P(W|S),下列哪项是正确的:
(垃圾邮件中出现 W 的次数)/(所有邮件中出现 W 的总次数)
(垃圾邮件中出现单词 W 的次数)/(垃圾邮件中的总单词数)
那么,要计算 P(W|S),我应该做 (1) 还是 (2)?(我以为是(2),但我不确定。)
顺便说一下,我指的是http://en.wikipedia.org/wiki/Bayesian_spam_filtering的信息。
我必须在本周末之前完成实施 :(
重复出现单词“W”不应该增加邮件的垃圾邮件分数吗?在你的方法中它不会,对吧?
假设我们有 100 条训练消息,其中 50 条是垃圾邮件,50 条是非垃圾邮件。并说每条消息的 word_count = 100。
比方说,在垃圾邮件中,单词 W 在每条消息中出现 5 次,而单词 W 在 Ham 消息中出现 1 次。
因此,所有垃圾邮件中出现的总次数 W = 5*50 = 250 次。
并且所有 Ham 消息中出现的总次数 W = 1*50 = 50 次。
W 在所有训练消息中的总出现次数 = (250+50) = 300 次。
那么,在这种情况下,如何计算 P(W|S) 和 P(W|H) ?
我们自然应该期待,P(W|S) > P(W|H)
对吧?