文章目录

  • 定义
  • 验证集和测试集的区别
  • 为什么验证数据集和测试数据集两者都需要?
  • 参考链接:

定义

  1. Ripley 的著作《模式识别与神经网络》(Pattern Recognition and Neural Networks)中,训练集、验证集和测试集的定义如下:

训练集:用来学习的样本集,用于分类器参数的拟合。

验证集:用来调整分类器超参数的样本集,如在神经网络中选择隐藏层神经元的数量。

测试集:仅用于对已经训练好的分类器进行性能评估的样本集。

  1. 详细解释

训练数据集(Training Set):
是一些我们已经知道输入和输出的数据集训练机器去学习,通过拟合去寻找模型的初始参数。例如在神经网络(Neural Networks)中, 我们用训练数据集和反向传播算法(Backpropagation)去每个神经元找到最优的比重(Weights)。

验证数据集(Validation Set):
也是一些我们已经知道输入和输出的数据集,通过让机器学习去优化调整模型的参数,在神经网络中, 我们用验证数据集去寻找最优的网络深度(number of hidden layers),或者决定反向传播算法的停止点;在普通的机器学习中常用的交叉验证(Cross Validation) 就是把训练数据集本身再细分成不同的验证数据集去训练模型。

测试数据集(Test Set):
用户测试模型表现的数据集,根据误差(一般为预测输出与实际输出的不同)来判断一个模型的好坏。


验证集和测试集的区别

  1. 验证集和测试集的对比

  2. 验证集的作用:
    使用验证集是为了快速调参,也就是用验证集选择超参数(网络层数,网络节点数,迭代次数,学习率这些)。
    另外用验证集还可以监控模型是否异常(过拟合啦什么的),然后决定是不是要提前停止训练。
    验证集的关键在于选择超参数,我们手动调参是为了让模型在验证集上的表现越来越好,如果把测试集作为验证集,调参去拟合测试集,就有点像作弊了。
    而测试集既 不参与参数的学习过程,也不参与参数的选择过程,仅仅用于模型评价。

  3. 验证集的正确打开方式:
    验证集可以看做参与了 “人工调参” 的训练过程。
    一般训练几个 epoch 就跑一次验证看看效果(大部分网络自带这个功能)。
    这样做的第一个好处是:可以及时发现模型或者参数的问题,比如模型在验证集上发散啦、出现很奇怪的结果啦(Inf)、mAP不增长或者增长很慢啦等等情况,这时可以及时终止训练,重新调参或者调整模型,而不需要等到训练结束。
    另一个好处是验证模型的泛化能力,如果在验证集上的效果比训练集上差很多,就该考虑模型是否过拟合了。同时,还可以通过验证集对比不同的模型。


为什么验证数据集和测试数据集两者都需要?

因为验证数据集(Validation Set)用来调整模型参数从而选择最优模型,模型本身已经同时知道了输入和输出,所以从验证数据集上得出的误差(Error)会有偏差(Bias)。

但是我们只用测试数据集(Test Set) 去评估模型的表现,并不会去调整优化模型。

在传统的机器学习中,这三者一般的比例为training/validation/test = 50/25/25, 但是有些时候如果模型不需要很多调整只要拟合就可时,或者training本身就是training+validation (比如cross validation)时,也可以training/test =7/3.

但是在深度学习中,由于数据量本身很大,而且训练神经网络需要的数据很多,可以把更多的数据分给training,而相应减少validation和test。


参考链接:

  1. 机器之心
  2. https://blog.csdn.net/JNingWei/article/details/78170171
  3. https://blog.csdn.net/qq_31347869/article/details/98203028
  4. https://zhuanlan.zhihu.com/p/29133576

【机器学习】验证集和测试集有什么区别相关推荐

  1. 验证集和测试集有什么区别?

    引言 在神经网络学习中,经常会很困惑: 我们需要将原始数据集拆分为三份:训练集.验证集和测试集.但是我也注意到在有些机器学习算法中,数据集往往被拆分为两份:训练集和测试集. 所以我们的问题归纳如下: ...

  2. 训练集、验证集和测试集的意义

    原文 在有监督的机器学习中,经常会说到训练集(train).验证集(validation)和测试集(test),这三个集合的区分可能会让人糊涂,特别是,有些读者搞不清楚验证集和测试集有什么区别. I. ...

  3. 机器学习典型步骤以及训练集、验证集和测试集概念

    1. 机器学习典型步骤 数据采集和标记 数据清洗 特征选择 如房子的面积.地理位置.朝向.价格等. 模型选择 有监督还是无监督,问题领域.数据量大小.训练时长.模型准确度等多方面有关. 模型训练和测试 ...

  4. 【入门篇】如何正确使用机器学习中的训练集、验证集和测试集?

    [注] ·本文为转载文章,原文作者是王树义老师,原文链接为 https://zhuanlan.zhihu.com/p/71961236 训练集.验证集和测试集,林林总总的数据集合类型,到底该怎么选.怎 ...

  5. 训练集、验证集和测试集这三个名词的区别

    训练集.验证集和测试集这三个名词在机器学习领域极其常见,但很多人并不是特别清楚,尤其是后两个经常被人混用. 在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train ...

  6. 如何正确使用机器学习中的训练集、验证集和测试集?

    王树义 读完需要 19 分钟 速读仅需7分钟 训练集.验证集和测试集,林林总总的数据集合类型,到底该怎么选.怎么用?看过这篇教程后,你就能游刃有余地处理它们了. 1 问题 审稿的时候,不止一次,我遇到 ...

  7. 验证集和测试集的区别?

    昨天一直在想验证集和测试集的问题,越想越迷- 问题是这样的,大部分网络的训练都是这么一个套路:训练迭代 n 个 epoch 以后就进行一次验证,然后网络会输出在验证集上的 loss 或者其他评价指标. ...

  8. 验证集和测试集的区别

    昨天一直在想验证集和测试集的问题,越想越迷- 问题是这样的,大部分网络的训练都是这么一个套路:训练迭代 n 个 epoch 以后就进行一次验证,然后网络会输出在验证集上的 loss 或者其他评价指标. ...

  9. 【神经网络】学习笔记十五——训练集,验证集和测试集

    以前一直知道神经网络划分数据集时要分为训练集,测试集和验证集,但不知道并且一般以6:2:2的比例划分,到头来不知道这三者各是啥,以及他们的作用是什么.本片文档解释一下三者的作用. 重点在于验证集和测试 ...

  10. 【小白学PyTorch】 2.浅谈训练集验证集和测试集

    文章目录: 经验误差与过拟合 评估方法 经验误差与过拟合 关键词:错误率(error rate),精度(accuracy). 错误率好理解,就是m个样本中,a个样本分类错误,则错误率E = a/m . ...

最新文章

  1. 基于Redis实现一个分布式锁
  2. COM编程之四 引用计数
  3. r语言 小树转化百分数_“小树”机器人1.0新品发布会
  4. kaggle(02)-房价预测案例(基础版)
  5. 为什么选择Cassandra
  6. 【Node学习】—运行node服务demo
  7. 将两个不同格式的XML文件,进行节点对照,并生成一个用于对照功能的XML
  8. 里式替换(LSP)跟多态有何区别?
  9. Rust: 属性(attribute)的含义及文档大全
  10. 腾讯云和阿里云短信接口区别
  11. 皮尔森相关系数_克莱姆相关系数的计算
  12. xl2tpd服务一键安装
  13. Arduino使用火焰传感器
  14. 文件管理android2.3,ES文件浏览器(ES File Explorer)v4.0.2.3 优化版-好用的安卓文件管理器...
  15. php larval 数据库when,Laravel DB类操作数据库
  16. 与计算机运算速度相关参数,计算机的运算速度与什么有关
  17. [艾兰岛]制作传送门之传送技能——kura酱长期更新
  18. 自动化运维之k8s——Helm、普罗米修斯、EFK日志管理、k8s高可用集群(未完待续)
  19. 记一次阿里云k8s部署-测试存储
  20. CentOS 之 libffi-devel 安装

热门文章

  1. Pandas 之DataFrame二维表基础操作及演示
  2. 怎么自己制作返利机器人教程分享
  3. 携程酒店价格关键信息记录
  4. 罗振宇2021“时间的朋友”跨年演讲精华版全文
  5. 小米开源:站在巨人肩膀上的创新
  6. 国内国外很火爆的代码生成器
  7. Android中/system/build.prop文件解读(转)
  8. 制作网页所需的一些简单ps技巧
  9. 制作一键架设服务器,制作一键端方法
  10. linux命令join的用法,linux join命令