在训练过程中评估训练/测试结果时,假设得到以下数值:
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% <--- 停止训练,似乎出现了过拟合。
当这种情况发生时,可以停止模型训练吗?还是这属于作弊?即当测试准确率下降时停止模型训练。我知道在训练过程中应该只评估训练集,所以我对此感到疑惑。
回答:
这是作弊。这样训练的模型在“现实生活中”的表现没有任何合理的保证。
你应该做的是有一个独立的机制来检测学习何时结束(看起来你的训练是迭代的),这个机制可以分析模型本身,或者使用数据集中的某个独立部分(通常称为验证集)。
简而言之:除了报告最终值外,你不能用测试数据做任何事情,你不能基于它做出任何决定。