TL:DR:在将 ML 模型投入生产之前,在所有可用数据上训练一个 ML 模型是不是一个好主意?换句话说,是否可以对所有可用数据进行训练而不检查模型是否过拟合,或者最终读取模型的预期性能?
假设我有一系列参数化的模型。例如,我可以通过对每个候选者运行 k 折交叉验证来对
使用交叉验证来选择的要点是,我可以通过在每次 CV 迭代(验证集)中对“未见过的数据”进行测试来检查该特定的学习模型是否具有例如过度拟合。在遍历所有之后,我可以选择一个模型学习的参数似乎在网格搜索中表现最好,例如平均所有折叠。
现在,假设在选择模型之后,我想使用所有可用的数据来尝试在生产中提供最好的模型。为此,我可以使用通过交叉验证的网格搜索选择 ) 数据集上训练模型后,我将获得一个新的学习模型
问题是,如果我使用我的整个数据集进行训练, 我无法可靠地检查这个新的学习模型 是否过拟合或者它在看不见的数据上的表现。那么这是一个很好的做法吗?思考这个问题的好方法是什么?