(180911)验证(validation):数据集的进一步划分 避免测试集过拟合---Google机器学习速成课程笔记
上次提到了通过划分数据集为训练集和测试集,并不断迭代训练模型,通过测试集对模型进行评估,进而不断调整超参数,来解决过拟合问题。
但是还会出现问题
按数据集分成训练集和测试集不断迭代训练模型的方式,每次迭代时,我们都会对训练数据进行训练并评估测试数据,并以基于测试数据的评估结果为指导来选择和更改各种模型超参数。迭代次数越多,基于给定的该测试集的评估越多,可能会导致模型过拟合该测试集。
总结一下,测试集在不断测试模型是否最佳时,可能会导致模型对测试集数据过拟合。
因为测试集的数据过多的暴露给了模型。解决也很好解决,只要把测试集分离开,不过多的暴露。所以在分离出一部分数据组成验证集,用验证集代替上文的测试集迭代评估模型是否最佳,最后在把效果最佳的模型用于测试集的预测,判断是否最佳。
如图所示的流程
另外提几点:
- 对于任意特征,训练集/验证集值的分布应该差不多
- 对于原数据集应该打乱之后划分,避免存在一定特定顺序的问题