【问题标题】:Test accuracy is greater than train accuracy what to do?测试精度大于训练精度怎么办?
【发布时间】:2018-12-30 01:37:02
【问题描述】:

我正在使用随机森林。我的测试准确率为 70%,而训练准确率为 34%?该怎么办 ?我该如何解决这个问题。

【问题讨论】:

  • 欢迎来到 SO。请更具体并显示代码和数据。

标签: machine-learning regression random-forest


【解决方案1】:

Test 准确度不应高于train,因为该模型针对后者进行了优化。这种行为可能发生的方式:

  • 您没有使用相同的源数据集进行测试。您应该进行适当的训练/测试拆分,其中它们都具有相同的基础分布。很可能您为test提供了一个完全不同(并且更受欢迎)的数据集

  • 应用了不合理的高度 regularization。即使如此,也需要一些“测试数据分布与训练数据分布不同”的元素才能发生观察到的行为。

【讨论】:

  • 我同意@javadba 并想补充一点:另一个原因可能是数据污染,其中训练集的记录也存在于测试集中。
【解决方案2】:

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

此外,在这种情况下,您应该尝试更多的 epoch。绘制学习曲线以分析模型何时收敛。

您应该检查以下内容:

  1. 训练和验证准确度得分都应该增加,损失应该减少。
  2. 如果在任何特定时期之后第 1 步出现问题,则仅在该时期训练您的模型,因为在那之后您的模型过度拟合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-01
    • 2020-06-04
    • 2020-07-08
    • 2021-09-14
    • 1970-01-01
    • 2020-09-29
    • 2020-05-23
    • 2020-05-19
    相关资源
    最近更新 更多