深度学习入门:训练集、验证集、测试集

文章介绍了深度学习中训练集、验证集和测试集的区别和作用。训练集用于模型训练,验证集用于初步验证模型性能,而测试集提供模型有效性的充分证据。验证集在训练过程中起到反馈作用,因此不能作为评估模型的最终标准,而测试集因未参与训练过程,能更公正地评价模型的泛化能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,好久不见,也不知道大家有没有想我,最近事情比较多一直没有时间发文章。

 

在深度学习的过程中我们可能会经常听说三种数据集,即训练集、验证集、测试集,但是这三个集合之间有什么异同我们可能很难弄明白其中之间的关系,尤其是验证集与测试集,今天我们就来讲一讲这三种集合之间的关系。

训练集:

对于我们来说训练集是一个什么样的东西我们很容易明白,就是用来训练的数据所组成的集合呗,其中的数据就是用来训练的原始数据,我们明白因为模型就是拿这些训练集的数据进行训练的,所以模型很容易就在这些数据上表现的很好,所以训练集无法作为评判模型好坏的标准。

总结:训练集是训练模型的数据所组成的组成的,因为这个数据集直接拿来训练所以此数据集不能作为评判模型好坏的标准。

验证集:

验证集顾名思义就是用来进行模型验证的数据集,其主要是用来初步验证模型的好坏,验证集中的数据全部是模型没有见到过的数据,所以我们可以初步根据模型在验证集上表现的好坏来选择模型,如果模型在验证集上的表现都不好的话那么很大的可能会在其他没有见到过的数据上表现的也不好,所以验证集的作用是用来初步验证模型的好坏。

测试集:

如果我们使用验证集对模型进行了验证,且在验证集上得到了较好的结果,那么我们可以初步判断模型可能会具有较好的性能,但是因为验证集上的数据只是有限的数据,在验证集上的表现好并不意味着在其他没有见到过的数据上也表现的会好,没有这种内在的联系在里面,即在验证集上表现的好并不意味着在其他数据集上表现得好,也就是仅通过验证集对模型的性能进行初步的验证并无法提供充分的说服力。

上面的这种情况,我们可以用我们的高考进行一个举例,一个学生平常做了大量的模拟试卷来进行训练(训练集),平时还需要经历联考(验证集),就算这个学生在联考(验证集)上面表现好,也只能说这个学生在高考的时候(泛化时)有可能表现得好,当然在联考(验证集)上表现的好,在高考(泛化时)也可能表现得不好。所以因为通过验证集无法为模型的性能提供说服力,所以又做了一个测试集,来提供这种说服力。

而且验证集是训练的一部分,大家听到这种说法时可能会一愣,你说的不对啊,验证集怎么能说是训练的一部分呢?诸位不要着急,且听在下给你细细道来。

首先模型在训练的时候,无法通过训练集检验模型训练的情况,也就是原有的训练数据无法作为检验模型的依据,那么靠什么数据来检验模型呢?这时候验证集就出来了,说就是在下了。也就是说如果没有验证集训练就无法完成闭环,即只有训练没有反馈,不知道模型的训练情况,也就无法判断下一步操作是继续进行训练呢?还是停止训练呢?而验证集则提供了这种反馈,所以它在间接的影响着训练的过程,正是因为验证集指导着模型是否继续训练,所以我说验证集是训练的一部分。既然验证集是训练的一部分了,那么训练的一部分怎么能够用来检验训练的结果呢?所以需要另外一个模型没有见过的其他数据所组成的集合来最终判定模型的好坏,那么这个集合就是我们的测试集了。测试集中的数据既没有直接参与训练的过程又没有间接的指导训练过程的进行所以它更能充分的证明模型的好坏,提供了一种充分的说服力。

验证集与测试集的关系以及区别:

首先验证集与测试集都是模型没有见过的数据,所以从集合中的数据模型有没有见过这一个方面来说验证集与测试集是一样的,其中的数据都是模型没有见过的数据。这也是大家可能会将验证集与测试集混淆的点。但是验证集中的数据间接指导了模型的训练过程,即验证集与训练是有关系的。而测试集是模型既没有见过的数据而且这些数据也没有间接的指导模型的训练。有没有间接的指导模型的训练是区别验证集和测试集的一个很重要的点。

验证集间接的指导了模型的训练过程所以验证集无法提供充分的说服力且无法充分证明模型是有效的。

测试集没有间接的指导模型的训练过程,其中的数据又是模型所没有见过的,所以能够提供模型有效的说服力。

总结:因为上述的这种区别,如果你想证明你所设计的模型是有效的一定要加上测试集,来对模型进行测试。

总结图:

如果有什么地方讲的不好或者讲错的地方欢迎大家指出来,如果我所讲的对你们有帮助不要忘了点赞、收藏、关注哦!

我是你们的好伙伴apprentice_eye

一个致力于让知识变的易懂的博主。

乖巧的表情包 的图像结果

 

交叉验证集测试集在机器学习领域中都有其特定用途,并且它们的作用是评估模型的性能,但在目的、使用时机以及如何使用上有所不同。 ### 交叉验证集 **定义及目的**: 交叉验证是一种用于估计模型性能的技术,在训练数据集中分割出若干份独立的数据集合,通常分为K份。在每一轮迭代中,会选取一份作为验证集(验证当前模型),其余的部分作为训练集。通过这种方式,每个数据样本都被用作过验证集一次,以此减少数据分割带来的随机性影响,提供更稳定和准确的模型性能估计。 **应用场景**: 1. **模型选择**:当需要比较和选择最优的超参数配置时,通过交叉验证可以系统地评估不同配置下的模型性能。 2. **防止过拟合**:通过对数据的不同划分多次评估模型,有助于识别模型对新数据的实际泛化能力,避免过度拟合训练数据的现象。 3. **特征选择**:在评估特定特征组合的有效性时,交叉验证能提供更为可靠的性能指标。 ### 测试集 **定义及目的**: 测试集是在整个建模过程中最后使用的数据集,它主要用于最终评估模型在未见过的新数据上的性能。这一步是在所有调整、选择、优化等过程完成后进行的,以获得真实世界情况下的模型性能估计,类似于模型在未来数据上的预测能力。 **应用场景**: 1. **最终模型评估**:在所有的实验、调优和选择阶段完成后,使用测试集得出的模型性能是对外部用户展示和部署前的最后一道质量检验关卡。 2. **公平性和透明度**:通过测试集的结果,可以向利益相关者明确展示模型的表现,包括其精度、召回率、F1分数等关键指标,增强决策的信心。 3. **模型部署准备**:基于测试集的性能分析,可以更好地理解模型在实际应用环境中的预期效果,从而做出合理的部署策略。 ### 相关问题: 1. **如何正确实施交叉验证?** - 正确的交叉验证策略需要考虑数据集大小、分割比例和迭代次数等因素,通常推荐的K值范围为5到10之间。 2. **为什么需要使用测试集而不是仅依赖交叉验证?** - 使用测试集是为了获得独立于训练过程的性能评估结果,以避免因模型调整而产生的乐观偏差,确保模型的真实性能。 3. **在哪些场景下交叉验证可能是不必要的?** - 当数据量非常大以至于可以轻松分配足够资源用于训练、验证和测试,或者当模型训练时间极短且不需要担心过拟合问题时,交叉验证可能不是必要的步骤。在这种情况下,直接将数据划分为训练集测试集即可。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值