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

问题描述 投票:0回答:4

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

machine-learning regression random-forest
4个回答
18
投票

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

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

    test

  • 提供了完全不同(且更令人满意)的数据集
  • 应用了不合理的高程度

    regularization
    。即使如此,也需要存在一些“测试数据分布与训练数据分布不同”的元素才能发生观察到的行为。


4
投票

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

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


1
投票

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

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

您应该检查以下内容:

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

0
投票

我使用 LogisticRegression 模型,训练数据的准确性:78.2220578914008 测试数据的准确性:79.70790786036571。有人可以帮我找出根本原因吗。

© www.soinside.com 2019 - 2024. All rights reserved.