验证数据集和测试数据集的区别

本文讲述了深度学习中训练数据集、验证数据集和测试数据集的区别,强调在模型选择过程中避免过拟合的重要性,以及如何通过验证集来评估模型性能。作者提到现实中可能存在的混淆,即通常所说的训练和验证数据实际充当了测试数据的角色。
摘要由CSDN通过智能技术生成

之前看李沐老师的《动手学深度学习》的时候,有讲到过验证数据集和测试数据集的区别,但是某一次给导师汇报工作的时候,居然还是记得不是很清楚,然后理直气壮的说反了,所以还是来整理一下这个概念

我觉得维基百科上,Training, validation, and test data sets词条中这段描述是直接描述出了在深度学习中三个数据集所代表的作用:

例如,在寻找最适合问题的分类器时,首先使用训练数据集(Training data set)来训练不同的候选分类器,然后利用验证数据集(Validation data set)来比较它们的性能,并决定选用哪一个分类器。最后,使用测试数据集(Test data set)来获取诸如准确率、灵敏度、特异度、F1值等性能指标。

所以对于这三个数据集的使用过程是先用训练数据集和验证数据集,最后的最后再用测试数据集获得模型的具体指标,测试数据集只在最后使用一次。

具体来讲创建验证数据集的原因是(沐神书里讲的还是蛮清晰的):

原则上,在我们确定所有的超参数之前,我们不希望用到测试集。 如果我们在模型选择过程中使用测试数据,可能会有过拟合测试数据的风险,如果我们过拟合了训练数据,还可以在测试数据上的评估来判断过拟合。 但是如果我们过拟合了测试数据,就很麻烦,而且也没有办法可以知道。

因此,我们决不能依靠测试数据进行模型选择。 然而,我们也不能仅仅依靠训练数据来选择模型,因为我们无法估计训练数据的泛化误差。

解决此问题的常见做法是将我们的数据分成三份, 除了训练和测试数据集之外,还增加一个验证数据集(validation dataset), 也叫验证集(validation set)。

然而也是说到:

但现实是验证数据和测试数据之间的边界模糊得令人担忧。 除非另有明确说明,否则在这本书的实验中, 我们实际上是在使用应该被正确地称为训练数据和验证数据的数据集, 并没有真正的测试数据集。 因此,书中每次实验报告的准确度都是验证集准确度,而不是测试集准确度。

沐神的PPT:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值