我用的是朴素贝叶斯分类器。遵循本教程。对于训练数据,我使用了308个问题,并将它们分为26个类别,这些类别是手动标记的。在发送数据之前,我正在执行nlp。在nlp中,我正在执行(标点删除、标记化、停止字删除和词干生成)这个过滤数据,并将其用作mahout的输入。使用mahout nbc的我训练这些数据并得到模型文件。现在当我跑的时候
mahout testnb
命令我得到正确分类为96%的示例。
现在我的测试数据,我用100个问题,我已经手动标记。当我使用训练模型和测试数据,我得到正确分类的示例为1%。这让我很生气。
有人能告诉我我做错了什么,或者给我一些提高nbc表现的方法吗。?
另外,理想情况下,我应该使用多少问题数据来训练和测试?
1条答案
按热度按时间bfhwhh0e1#
这似乎是典型的问题“过度装修”。。。你在训练中的准确率很高,但在实际情况中却很低。
你可能需要更多的训练示例。另外,这26个类别也有可能与你拥有的特征不相关。机器学习并不神奇,它需要变量和结果之间的某种统计关系。实际上,nbc在这里可能做的是有效地“记忆”训练集,这对于记忆之外的问题是完全无用的。