训练集:拟合模型,用这部分数据来建立模型,找出最佳的w和b。
验证集:用以确定模型超参数,选出最优模型。train建了一个模型,但是模型的效果仅体现了训练数据,但不一定适合同类的其他数据,所以建模前数据分成两部分,一部分为训练数据,一部分为验证数据。另外,你也可能训练多个模型,但不知哪个模型性能更佳,这时可以将验证数据输入不同模型进行比较。在神经网络中,我们用验证数据集去寻找最优的网络深度(number of hidden layers),或者决定反向传播算法的停止点;在普通的机器学习中常用的交叉验证(Cross Validation) 就是把训练数据集本身再细分成不同的验证数据集去训练模型。
测试集:用来测试学习器对新样本的学习能力。
重点:对最终学习得到的函数进行性能评估的数据叫作测试集,必须保证测试集完全独立,直到模型调整和参数训练全部完成前应该将测试集进行封存,以任何形式使用测试集中的信息都是一种窥探。因为验证数据集(Validation Set)用来调整模型参数从而选择最优模型,模型本身已经同时知道了输入和输出,所以从验证数据集上得出的误差(Error)会有偏差(Bias)。只用测试数据集(Test Set) 去评估模型的表现,并不会去调整优化模型。
选择在验证集上误差最小的模型,并合并训练集和验证集作为整体训练模型,找到最优函数。
在测试集上对最优函数的泛化性能进行度量。
划分训练集和测试集的方法
留出法:直接将数据集D划分为两个互斥的集合,训练集和测试集划分尽量保证数据分布的一致性,如采用分层采样,采用若干次随机划分,重复多次试验结果取平均值作为留出法的评估结果。
交叉验证法:将数据集划分为k个大小相似的互斥子集,每次用k-1个子集作为训练集,余下的作为测试集,从而进行k次训练和测试,返回k次结果的平均值。若D中包含m个样本,k=m,则得到了留一法。
自助法:给定数据集D包含m个样本,在D中进行有放回的m次采样,得到数据集D1,重复m次,得到m个数据集,D\D1用做测试集。自助法在数据集较小,难以有效划分训练集,测试集时使用,然而改变了原始数据的分布,会引入偏差。
网友评论