训练集、验证集和测试集在机器学习领域及其常见,后两者容易混用。
在有监督(supervise)的机器学习中,数据集常被切分为2-3部分,即:
一个形象的比喻:
训练集:学生的课本,学生根据课本中的内容来掌握知识;
验证集:作业,通过作业可以知道学生的学习情况、进步快慢;
测试集:考试,考题都是平时没见过的,考察学生举一反三的能力。
学习样本数据集,通过匹配一些参数来建立一个分类器。
建立一种分类的方式,主要是用来训练模型的。
作用:估计模型。
对学习出来的模型,调整分类器的参数,如在神经网络中选择隐藏单元数。
验证集还用来确定网络结构或者控制模型复杂程度的参数。
作用:确定网络结构或者控制模型复杂程度的参数。
在普通的机器学习中常用的交叉验证(Crossvalidation)就是把训练数据集本身再细分为不同的验证数据集去训练模型。
测试训练好的模型分辨能力。
该数据集与训练集、验证集完全分离,不参与模型训练。
作用:检验最终选择最优的模型性能。
简而言之,为了防止过度拟合。
如果我们把所有数据都用来训练模型的话,建立的模型自然是最契合这些数据的,测试表现也好。
但换了其它数据集测试这个模型效果可能就没那么好。
总而言之,训练集和测试集相同的话,模型评估结果肯定比实际要好,但是模型的泛化性能较差。
典型的交叉验证,划分比例为7:2:1,三部分从样本中随机抽取。
针对样本交叉的情况,数据集中每一个样本都是极其珍贵的,不宜如此划分。
THE END