ML中数据集大致有两种划分(这种把数据分为几部分分别训练、测试的思想就叫做“交叉验证”):
1、训练集、测试集
2、训练集、验证集、测试集
问题是监督机器学习的训练集包含标签,在反向传播(或其他优化器)时就可以学习各个权重。而测试集是用来测试模型的,那么验证集是用来干什么的呢?
答:防止被测模型过拟合。
第一种方法的流程是:在训练集上训练,在每次训练完后在测试集上测试后调整超参。这有一个潜在的问题就是基于给定测试集执行评估的次数越多,不知不觉地过拟合该测试集的风险就越高。从而造成测试结果和泛化结果差距很大。
而第二种方法的流程大致是:在训练集上训练权重
在验证集上评估训练期间模型的准确率,修改模型(调整超参、增删特征等)
获得最佳评估模型后在测试集上测试训练完成后模型的准确率。最后的测试集是与被测试模型从未接触的数据,具有效的模型泛化能力测试性。