为了账号安全,请及时绑定邮箱和手机立即绑定

如何更改NLTK中朴素贝叶斯分类器的平滑方法?

如何更改NLTK中朴素贝叶斯分类器的平滑方法?

慕标5832272 2021-03-23 05:10:21
我已经使用NLTK朴素贝叶斯方法训练了垃圾邮件分类器。垃圾邮件集和非垃圾邮件集都有20,000个单词实例在训练中。我注意到,当遇到未知功能时,就会classifier给它0.5带来垃圾邮件的可能性:>>> print classifier.prob_classify({'unkown_words':True}).prob('spam') 0.5我知道这Laplace Smoothing在贝叶斯分类中被称为。但是,我想将未知功能的垃圾邮件概率设置为0.4,因为未知功能更可能来自正常用户。如何使用NLTK实施它?
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

我找到了一种解决此问题的非常简单的方法。


我选择了12,000个垃圾邮件帐户和18,000个普通帐户来重新训练朴素贝叶斯分类器。垃圾邮件帐户和普通帐户的比例为0.4 / 0.6。


因此,当分类器收到训练集的未知特征时,它的垃圾邮件概率为0.4:


In [23]: classifier.prob_classify({'unknown_words': True}).prob('spam')

Out[23]: 0.40000333322222587


查看完整回答
反对 回复 2021-03-27
  • 1 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信