训练集、测试集、验证集之间的区别及理解

训练集、测试集、验证集之间的区别及理解

在写代码时,数据集的划分时常影响我们的准确率,好的数据集划分一般分为训练集(training set),验证集(development set/validation set)和测试集(test set)。

一、训练集、验证集、测试集之间的区别及其作用

  1. 训练集

训练集:用于模型拟合的数据样本,即用于训练的样本集合,主要用来训练神经网络中的参数,

  1. 验证集

验证集:模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。

  1. 测试集

测试集:用来评估模最终模型的泛化能力。但不能作为调参、选择特征等算法相关的选择的依据。

  1. 各数据集的作用
    P1:训练集的作用
    拟合模型,调整网络权重。
    P2:验证集的作用
    作用1:快速调参,也就是通过验证集我们可以选择超参数(网络层数、网络节点数、迭代次数epoch、学习率learning rate、优化器)等。
    作用2:选择超参数,为了让我们的模型在测试集表现得更好,调参是不可避免地一部分,如果把测试集当验证集,调参去拟合测试集合,是不可行地,这相当于作弊
    作用3:监控模型是否正常
    验证集的重要性
    如果没有设置验证集,我们通常得等到测试集才可以知道我们模型真正得实力,然后再来调整参数,这样子时间代价较高,通过验证集我们可以训练几个epoch后查看模型的训练效果及我们的网络是否出现异常,然后决定怎么调整我们的超参数。
    P3:测试集的作用
    仅仅用来评估模最终模型的泛化能力,确认网络的实际预测能力。

  2. 个人对数据集的理解:[训练集train,测试集test,验证集val]
    我的理解是∶
    test是一个神秘的人,也是一个有选择困难症的人,它不参与参数学习的过程也不参与参数的选择过程,test依旧是蒙娜丽莎的微笑。test就好像沉迷于桃花林的评价者,它只会给经历磨难(训练)的net打分,其他的事情它一概不管。
    那么net应该怎么确定自己变得更加优秀,在武林排行版上排位上升,使得其在最后获得高分而顺利出关呢?由此便诞生了val,val就好像是net的师傅,在net取经路上给出建议和及时终止不恰当的行为,既让net可以提高自己的能力,也可以避免net走火入魔。而net也不是一个啃老族,他也会依靠自己的训练来提高,即train。

一个更为简单的理解,来源于:[链接在此]
在这里插入图片描述

训练集-----------学生的课本;学生 根据课本里的内容来掌握知识。

验证集------------作业,通过作业可以知道 不同学生学习情况、进步的速度快慢。

测试集-----------考试,考的题是平常都没有见过,考察学生举一反三的能力。
  1. 网络的步骤:
    Step1:训练普通参数。
    在训练集(给定超参数)上利用学习算法,训练普通参数,使得模型在训练集上的误差降低到可接受的程度(一般接近人类的水平)。
    Step2:'训练’超参数。
    在验证集上验证网络的generalization error(泛化能力),并根据模型性能对超参数进行调整。
    Step3:重复1和2两个步骤,直至网络在验证集上取得较低的generalization error。此时完整的训练过程结束.在完成参数和超参数的训练后,在测试集上测试网络的性能。

关于此篇博客,我参考的其他博客的链接:
[链接1]
[链接2]

  • 29
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaobai_Ry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值