测试精度大于训练精度怎么办?
Posted
技术标签:
【中文标题】测试精度大于训练精度怎么办?【英文标题】:Test accuracy is greater than train accuracy what to do? 【发布时间】:2018-12-30 01:37:02 【问题描述】:我正在使用随机森林。我的测试准确率为 70%,而训练准确率为 34%?该怎么办 ?我该如何解决这个问题。
【问题讨论】:
欢迎来到 SO。请更具体并显示代码和数据。 【参考方案1】:Test
准确度不应高于train
,因为该模型针对后者进行了优化。这种行为可能发生的方式:
您没有使用相同的源数据集进行测试。您应该进行适当的训练/测试拆分,其中它们都具有相同的基础分布。很可能您为test
提供了一个完全不同(并且更受欢迎)的数据集
应用了不合理的高度 regularization
。即使如此,也需要一些“测试数据分布与训练数据分布不同”的元素才能发生观察到的行为。
【讨论】:
我同意@javadba 并想补充一点:另一个原因可能是数据污染,其中训练集的记录也存在于测试集中。【参考方案2】:首先,您应该检查用于训练的数据。我认为数据有问题,数据可能没有经过适当的预处理。
此外,在这种情况下,您应该尝试更多的 epoch。绘制学习曲线以分析模型何时收敛。
您应该检查以下内容:
-
训练和验证准确度得分都应该增加,损失应该减少。
如果在任何特定时期之后第 1 步出现问题,则仅在该时期训练您的模型,因为在那之后您的模型过度拟合。
【讨论】:
以上是关于测试精度大于训练精度怎么办?的主要内容,如果未能解决你的问题,请参考以下文章
Oracle NUMBER 的 Scale 怎么可能大于 Precision?