关于贝叶斯代码的思考

问题描述:
老师我对您的贝叶斯代码做了如下更改,得到了不一样的准确率,您给的准确率是94%,我将您测试集代码做了一步处理,您代码的大概意思是将测试集一封邮件分词后,去算该词出现的概率,然后排序选15个最高的做贝叶斯。
而我是将这一步改成了用TF-IDF做了关键词抓取,第一次返回的关键词的个数是15 20 80 100 等不同,准确率从59% 61% 一直到94.87% 比您的只是多了0.002左右,但是我这里并没有取15个,是所有的词做贝叶斯,缺和您的准确率差不多,我不知道为什么?我能理解的是,我将一封邮件的关键字提取出来,能大概反应该邮件的大意,但是直到需要取100个关键词,准确率才和您的一样,往上就准确率也没有提高了,我不知道为什么您将所有的词做一次排序后,取15个,准确率能有这个高?而我这个思路,需要这么多关键词才能提高准确率,是不是关键词少了不能反映邮件的真实含义呢?我想提高这个准确率,需要做哪方面的改进呢?希望老师能详细回答下,指点下思路。谢谢。当我在改了未登陆词后,我们两个人的代码准确率都能到到96% 这是为什么呢?未登录次的影响那么吗?从0.47下降到0.2 准确提高这么多?这又是为什么呢?是我们邮件的词典不够大吗?

泽南Alpha

赞同来自: 秦曾昌 fish

额,为什么取15个..因为2002年,有个人叫Paul Graham,他提出使用“贝叶斯推断”过滤垃圾邮件,他给的标准是15个。当然实际多一些少一些都行,15个基本可以达到一个很高的准确率了。   为什么要排序..排序是对单个词的后验概率p(s|w)排序,越大的越有说服力啊,就比如一般sex的后验S概率可以达到99%,hello为1%,肯定用99%参与算联合概率..   个人的理解,比较浅显

秦曾昌

赞同来自: fish

是的,取十五个以及0.01的概率设定都是依据前人的工作。您取tfidf是一个更常用的文本特征。它对于正负类中出现的较为独特,但是频率又不高的词给予了更大的权重,对于基于贝叶斯的文本分类问题,未必有用。如果您坚持想要实验这种特征的性能,可以提取tfidf特征后,尝试一下别的分类器,如svm,对数几率回归等,这种提取特征后用分类器的方法,在更普遍的文本分类问题中更加常见。

Gagaq77

赞同来自:

谢谢老师。

要回复问题请先登录注册