在机器学习算法中,我们通常将原始数据集划分为三个部分(划分要尽可能保持数据分布的一致性):
(1)Training set(测试集): 训练模型
(2)Validation set(验证集): 选择模型
(3)Testing set(测试集): 评估模型
其中Validation set的作用是用来避免过拟合的。在训练过程中,我们通常用它来确定一些超参数(例:根据Validation set的accuracy来确定early stoping的epoch大小,根据Validation set确定learning rate等等)。之所以不用Testing set,是因为随着训练的进行,网络会慢慢过拟合测试集,导致最后的Testing set没有参考意义。因此Training set用来计算梯度更新权重,即训练模型,Validation set用来做模型选择,Testing set则给出一个accuracy以判断网络性能的好坏。
数据集的划分通常有三种方法:
(1)留出法(Hold-out)
将数据集\(D\)划分为两个互斥的集合,其中一个集合作为训练集