神经网络中关于训练集/验证集/测试集

如何将只有一个包含m个样例的数据集D,产生出训练集S和测试集T?

  • 留出法(hold-out)
  • 交叉验证法(cross validation)
  • 自助法(bootstrapping)

自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。因此,在初始数据量足够时,留出法交叉验证法更常用一些。

有人会考虑既然将数据集D,分为训练集S和测试集T,那么验证集又是什么呢?

测试集(testing set)来测试学习器对新样本的判别能力,然后以测试误差(testing error)作为泛化误差的近似。通常我们假设测试样本也是从样本真实分布中独立同分布采样而得。但需注意的是,测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现,未中训练过程中使用过。

测试集只是用于测试学习器(即学得模型)的泛化能力。而如何选择学习器呢?

在训练集中,事实上我们只使用了一部分数据训练模型,在模型评估与选择过程中需要留出一部分数据进行评估测试。为了和测试集加以区分,模型评估与选择中用于评估测试的数据集常称为验证集(validation set)。

在研究对比不同算法的泛化性能时,我们用测试集的判别效果来估计模型中实际使用时的泛化能力,而把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参

你可能感兴趣的:(机器学习-周志华)