训练集一般没有什么疑问,就是用来训练模型的数据集
主要的疑问在于验证集和测试集
首先来看周志华《机器学习》中的原文:
通常,我们可通过试验测试来对学习器的繁华误差进行评估并进而做出选择。为此,需使用一个“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”作为泛化误差的近似。通常我们假设测试样本也是从样本真实样本中独立同分布采样而得。但需要注意的是,测试集应尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过。
另外,需要注意的是,我们通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,模型评估与选择中用于评估测试的数据集常称为“验证集”。例如,在研究对比不同算法的泛化性能时,我们用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分未训练集和验证集,基于验证集上的性能来进行模型选择和调参。
总结原文,简单来说,我们会将原始数据集D划分为训练数据和测试数据,其中训练数据又被划分为训练集和验证集,用来进行模型选择和调参,测试数据也就是测试集,用来评估选择并调参后的模型的泛化能力。验证集参与模型选择和调参,测试集不参与。