我正在使用随机森林。我的测试准确率是 70%,而训练准确率是 34%?该怎么办 ?我该如何解决这个问题。
Test
精度不应高于 train
,因为模型针对后者进行了优化。这种行为可能发生的方式:
您没有使用相同的源数据集进行测试。您应该进行适当的训练/测试拆分,其中两者具有相同的基础分布。您很可能为
test
应用了不合理的高程度
regularization
。即使如此,也需要存在一些“测试数据分布与训练数据分布不同”的元素才能发生观察到的行为。其他答案在大多数情况下都是正确的。但我想提供另一个视角。有些特定的训练制度可能会导致模型更难学习训练数据 - 例如,对抗性训练或在训练示例中添加高斯噪声。在这些情况下,良性测试的准确性可能高于训练准确性,因为良性示例更容易评估。然而,这并不总是一个问题!
如果这适用于您,并且训练和测试精度之间的差距比您想要的要大(就像您的问题一样,~30% 是一个相当大的差距),那么这表明您的模型不适合更难的模型模式,因此您需要提高模型的可表达性。在随机森林的情况下,这可能意味着将树训练到更高的深度。
首先您应该检查用于训练的数据。我认为数据有问题,数据可能没有正确预处理。
此外,在这种情况下,您应该尝试更多的纪元。绘制学习曲线以分析模型何时收敛。
您应该检查以下内容:
我使用 LogisticRegression 模型,训练数据的准确性:78.2220578914008 测试数据的准确性:79.70790786036571。有人可以帮我找出根本原因吗。