she*_*ell 4 python machine-learning neural-network scikit-learn
在训练期间评估训练/测试结果时,请说出这些值:
Train: 50.5% - Test: 50.2%
Train: 55.5% - Test: 53.2%
Train: 62.5% - Test: 58.2%
Train: 69.5% - Test: 62.2%
Train: 75.5% - Test: 59.2% <--- stop training, overfitting seems to be happening.
Run Code Online (Sandbox Code Playgroud)
发生这种情况时,您能阻止模型进行训练,还是作弊?即当测试精度降低时停止模型训练。我知道你应该只在训练期间评估训练集,所以这就是我想知道的原因。
这是作弊。以这种方式训练的模型对其“在现实生活中”的表现没有任何合理的保证
你应该做的是有一个单独的机制来检测学习何时完成(似乎你的训练是迭代的),它可能会分析模型本身,或者使用一些单独的(通常称为验证)保留部分数据集。
简而言之:除了报告最终值之外,您不能将测试数据用于任何事情,您不能根据它做出任何决定。