我正在实现用于垃圾邮件过滤的朴素贝叶斯分类器。我对一些计算有疑问。请告诉我该怎么做。这是我的问题。
在这个方法中,你必须计算
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 在非垃圾邮件中出现 1 次。
因此所有垃圾邮件中出现的总次数W = 5*50 = 250次。
W 在所有 Ham 消息中出现的总次数 = 1*50 = 50 次。
W 在所有训练消息中的总出现次数 = (250+50) = 300 次。
那么,在这种情况下,您如何计算 P(W|S) 和 P(W|H) ?
当然我们应该期待,P(W|S) > P(W|H)
对吗?
最佳答案
P(W|S)
=(包含 W 的垃圾邮件数量)/(所有垃圾邮件数量)
关于algorithm - 朴素贝叶斯分类(垃圾邮件过滤)——哪种计算是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2828113/