Machine learning 测试精度大于列车精度怎么办?

Machine learning 测试精度大于列车精度怎么办?,machine-learning,regression,random-forest,Machine Learning,Regression,Random Forest,我使用的是随机森林。我的测试准确率是70%,另一方面,训练准确率是34%?怎么办?如何解决此问题。测试精度不应高于训练,因为模型针对后者进行了优化。这种行为可能发生的方式: 您没有使用相同的源数据集进行测试。您应该进行适当的列车/测试拆分,其中两个列车/测试具有相同的基础分布。很可能您为test 应用了不合理的高度规范化。即使如此,也需要一些“测试数据分布与列车数据分布不同”的元素,以使观察到的行为发生 首先,您应该检查用于培训的最终数据。我认为他们的数据有问题,数据可能没有经过适当的预处理

我使用的是随机森林。我的测试准确率是70%,另一方面,训练准确率是34%?怎么办?如何解决此问题。

测试
精度不应高于
训练
,因为模型针对后者进行了优化。这种行为可能发生的方式:

  • 您没有使用相同的源数据集进行测试。您应该进行适当的列车/测试拆分,其中两个列车/测试具有相同的基础分布。很可能您为
    test

  • 应用了不合理的高度规范化。即使如此,也需要一些“测试数据分布与列车数据分布不同”的元素,以使观察到的行为发生


首先,您应该检查用于培训的最终数据。我认为他们的数据有问题,数据可能没有经过适当的预处理

在这种情况下,你应该尝试更多的历元,并绘制学习曲线, 购买你可以分析的学习曲线,当你的模型要收敛时, 你应该检查这些东西:

  • 验证和培训的准确性应该提高,损失应该减少
  • 如果第1步在某个特定时期之后出错,那么只训练模型直到那个时期,因为在那个时期之后,模型已经过拟合了

  • 欢迎来到SO。请更具体一点,并显示代码和数据。我同意@javadba,并想补充一点:另一个原因可能是数据污染,测试集中也存在来自列车组的记录。