测试精度大于训练精度该怎么办



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

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

  • 您没有使用相同的源数据集进行测试。您应该进行适当的训练/测试拆分,使两者具有相同的基本分布。很可能您为test提供了一个完全不同(更令人愉快(的数据集

  • 应用了不合理的高程度的CCD_ 4。即便如此,也需要一些"测试数据分布与列车不同"的元素,才能使观察到的行为发生。

其他答案在大多数情况下都是正确的。但我想提供另一个视角。有一些特定的训练机制可能会导致模型更难学习训练数据,例如,对抗性训练或在训练示例中添加高斯噪声。在这些情况下,良性测试的准确性可能高于训练的准确性,因为良性示例更容易评估。然而,这并不总是一个问题!

如果这适用于你,并且训练和测试精度之间的差距比你想要的要大(在你的问题中,大约30%是一个相当大的差距(,那么这表明你的模型不适合更难的模式,所以你需要提高模型的可表达性。在随机森林的情况下,这可能意味着将树木训练到更高的深度。

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

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

您应该检查以下内容:

  1. 训练和验证准确性得分都应该增加,损失应该减少
  2. 如果在任何特定的历元之后,步骤1中出现了错误,那么只训练你的模型直到该历元,因为在那之后你的模型过于拟合

最新更新