如何提高朴素贝叶斯分类器的准确性?

joa*_*shp 1 performance hadoop tf-idf mahout

我正在使用朴素贝叶斯分类器.遵循本教程.对于训练好的数据,我使用308个问题并将它们分类为26个手动标记的类别.在发送数据之前,我正在执行NLP.在NLP我正在执行(标点符号删除,标记化,删除词和词干)这个过滤后的数据,用作mahout的输入.使用mahout NBC我训练这些数据并获得模型文件.现在,当我跑

mahout testnb 
Run Code Online (Sandbox Code Playgroud)

命令我得到正确的分类实例为96%.

现在,对于我的测试数据,我使用了100个问题,我手动标记了这些问题.当我使用经过训练的模型和测试数据时,我得到的正确分类实例为1%.这让我感到沮丧.

任何人都可以告诉我我做错了什么或建议我一些方法来提高NBC的表现.

另外,理想情况下,我应该使用多少问题数据来训练和测试?

Don*_*ner 5

这似乎是"过度拟合"的经典问题......在训练集中你获得了非常高的%准确率,但在实际情况中却是低%.

您可能需要更多培训实例.此外,26个类别可能与您拥有的功能无关.机器学习并不神奇,需要在变量和结果之间建立某种统计关系.实际上,NBC可能在这里做的是有效地"记忆"训练集,这对于记忆之外的问题是完全无用的.