Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 如何提高朴素贝叶斯分类器的精度?_Performance_Hadoop_Mahout_Tf Idf - Fatal编程技术网

Performance 如何提高朴素贝叶斯分类器的精度?

Performance 如何提高朴素贝叶斯分类器的精度?,performance,hadoop,mahout,tf-idf,Performance,Hadoop,Mahout,Tf Idf,我使用的是朴素贝叶斯分类器。接下来呢。 对于经过培训的数据,我使用了308个问题,并将它们分为26个类别,这些类别是手动标记的。 在发送数据之前,我正在执行NLP。在NLP中,我正在执行(标点删除、标记化、停止字删除和词干生成) 此过滤数据,am用作mahout的输入。 我用美国国家广播公司的mahout训练这些数据并得到模型文件。现在当我跑的时候 mahout testnb 命令我得到正确分类为96%的实例 现在,对于我的测试数据,我使用了100个我手动标记的问题。当我使用经过训练的模型和

我使用的是朴素贝叶斯分类器。接下来呢。 对于经过培训的数据,我使用了308个问题,并将它们分为26个类别,这些类别是手动标记的。 在发送数据之前,我正在执行NLP。在NLP中,我正在执行(标点删除、标记化、停止字删除和词干生成) 此过滤数据,am用作mahout的输入。 我用美国国家广播公司的mahout训练这些数据并得到模型文件。现在当我跑的时候

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

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

有谁能告诉我我做错了什么,或者给我一些提高NBC业绩的方法吗


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

这似乎是一个经典的问题。。。你在训练集上的准确率很高,但在实际情况下,准确率很低


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

这似乎是。。。你在训练集上的准确率很高,但在实际情况下,准确率很低


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

你有300个标记的输入“向量”用于训练?你是认真的吗?@ThomasJungblut少了300?理想情况下,我们应该为每个班级/类别培训多少个问题?您有300个标记输入“向量”用于培训?你是认真的吗?@ThomasJungblut少了300?理想情况下,我们应该为每个类/类别训练多少个问题?我已经将训练数据集增加到600个,测试数据集增加到100个,减少了类别,现在是8个类别。在没有NLP的情况下,测试数据的准确率为17%。使用NLP,我得到了10%的准确率。在NLP执行中(标点符号删除、停止词删除、标记化和词干生成),请给我一些建议。不知道我做错了什么。我应该使用NLP吗?还有,我应该增加多少训练和测试数据?@user2331441我相信你没有做错,这是一个统计问题,假设在类别中你已经训练了80个(每个类别10个),那么测试集中未来的句子必须有一些相关/类似的单词。例如,如果你问“太阳是什么颜色的?”并且你已经训练了“太阳是黄色”的答案。那么,如果未来的问题中没有“颜色”和“太阳”这两个词,那么你的答案就不会有结果。因此,如果有人输入“地球轨道上的恒星是什么颜色?”这一问题,那么你训练的数据与刚才问到的问题之间就没有相关性……训练的数据越多,你的准确性就越高。。。(文本正文越大,点击率越高,但误报率也越高)。。。然而,这只是我迄今为止的经验!我已经将训练数据集增加到600,测试数据集增加到100,减少了类别,现在是8个类别。在没有NLP的情况下,测试数据的准确率为17%。使用NLP,我得到了10%的准确率。在NLP执行中(标点符号删除、停止词删除、标记化和词干生成),请给我一些建议。不知道我做错了什么。我应该使用NLP吗?还有,我应该增加多少训练和测试数据?@user2331441我相信你没有做错,这是一个统计问题,假设在类别中你已经训练了80个(每个类别10个),那么测试集中未来的句子必须有一些相关/类似的单词。例如,如果你问“太阳是什么颜色的?”并且你已经训练了“太阳是黄色”的答案。那么,如果未来的问题中没有“颜色”和“太阳”这两个词,那么你的答案就不会有结果。因此,如果有人输入“地球轨道上的恒星是什么颜色?”这一问题,那么你训练的数据与刚才问到的问题之间就没有相关性……训练的数据越多,你的准确性就越高。。。(文本正文越大,点击率越高,但误报率也越高)。。。然而,这只是我迄今为止的经验!