我正在使用机器学习方法进行情感分析(在 Twitter 数据上)的项目工作。为了找到“最好”的方法,我通过使用 unigrams、bigrams 和 unigram 和 bigrams 来尝试朴素贝叶斯和最大熵分类器。我正在为 ME 使用SharpEntropy库,并为 NB 使用自己的实现。
我的问题与 ME 分类器有关。在我的一项测试中,我使用 unigrams 和 bigrams 对其进行了训练,因为它们的性能优于仅 unigrams 和仅 bigrams 的解决方案。我使用了 100 次迭代并且没有截止(= 在训练中使用它的最小外观)。
在最初的训练之后,我开始了验证,我遇到的奇怪的事情如下:如果测试数据没有转换为一元-二元表示,我的分类器比我进行转换时的情况。所以基本上我的分类器是使用 unigram 和 bigram 训练的,但是测试数据仍然是 unigram 表示,我得到了更好的结果。(unigram 训练 - unigram 测试数据导致 58% 的准确度,bigram only 训练 - bigram only 测试导致 68% 准确率)
这种行为的原因可能是什么?我正在寻求一些帮助以更深入地了解这一点。