机器学习中防止过拟合是作弊吗?

在训练过程中评估训练/测试结果时,假设得到以下数值:

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% <--- 停止训练,似乎出现了过拟合。

当这种情况发生时,可以停止模型训练吗?还是这属于作弊?即当测试准确率下降时停止模型训练。我知道在训练过程中应该只评估训练集,所以我对此感到疑惑。


回答:

这是作弊。这样训练的模型在“现实生活中”的表现没有任何合理的保证。

你应该做的是有一个独立的机制来检测学习何时结束(看起来你的训练是迭代的),这个机制可以分析模型本身,或者使用数据集中的某个独立部分(通常称为验证集)。

简而言之:除了报告最终值外,你不能用测试数据做任何事情,你不能基于它做出任何决定

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注