目录

  • 1.为什么需要验证集
  • 2.验证集与测试集的区别
  • 3.如何使用验证集
  • 4.为什么验证集和测试集都需要?
  • 参考链接

1.为什么需要验证集

在机器学习中,训练模型时需要调节模型的参数来提高模型的性能,比如网络层数,网络节点数,迭代次数,学习率,权重,这些调节都需要在训练的模型上通过验证集输出一个调整信号,来通知我们需要去修改参数。这就是验证集的作用,但随着验证集输出调整信号越多,模型也就对验证集学习的更清楚,最后可能导致模型学习的过细,数据拟合度过高,在验证集上呈现过拟合。这就需要一个未知数据集(测试集)来评估模型的好坏。

验证集的关键在于选择超参数,我们手动调参是为了让模型在验证集上的表现越来越好,如果把测试集作为验证集,调参去拟合测试集,那么准确度一定是100%,就如你考试作弊一样。因此测试集既不参与参数的学习过程,也不参与参数的选择过程,仅仅用于模型评价。

2.验证集与测试集的区别

3.如何使用验证集

验证集可以看做参与了 “人工调参” 的训练过程。一般训练几个 epoch 就运行一次验证集看看效果(大部分网络自带这个功能)。
这样做的目的是:
(1)可以及时发现模型或者参数的问题,比如模型在验证集上发散、出现非正常的结果、mAP评价指标不增长或者增长很慢等情况,这时可以及时终止训练,重新调参或者调整模型,而不需要等到训练结束。
(2)验证模型的泛化能力,如果在验证集上的效果比训练集上差很多,就该考虑模型是否过拟合了。同时,还可以通过验证集对比不同的模型。

4.为什么验证集和测试集都需要?

因为验证数据集(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.深度学习: 验证集 & 测试集 区别
3.机器学习中为啥要有验证集?只要训练集和测试集不就可以了吗?

机器学习中为什么需要验证集,验证集与测试集的区别是什么?相关推荐

  1. 【机器学习】图解机器学习中的 12 种交叉验证技术

    今天我给大家盘点下机器学习中所使用的交叉验证器都有哪些,用最直观的图解方式来帮助大家理解他们是如何工作的. 数据集说明 数据集来源于kaggle M5 Forecasting - Accuracy[1 ...

  2. 【转载】如何理解数据集中【训练集】、【验证集】和【测试集】

    转自<吴恩达深度学习笔记(28)-网络训练验证测试数据集的组成介绍> 训练,验证,测试集(Train / Dev / Test sets) 在配置训练.验证和测试数据集的过程中做出正确决策 ...

  3. 为什么训练集用fit_transform()而测试集用transform()及sklearn.feature_extraction.text.CountVectorizer API详解

    真正讲明白的 https://blog.csdn.net/yyhhlancelot/article/details/85097656 API https://scikit-learn.org/stab ...

  4. 训练集准确率上升,测试集的准确率没有变化!

    训练集准确率上升,测试集的准确率没有变化! 1.问题描述 2.解决办法 1.问题描述 最近利用ResNet18网络做分类问题时,训练集准确率一直在上升,测试集的准确率确几乎没有变化.数据集用的是flo ...

  5. 深度盘点:详细介绍机器学习中的7种交叉验证方法!

    来源:机器学习社区 本文约3400字,建议阅读10分钟 本文与你分享7种最常用的交叉验证技术及其优缺点,提供了每种技术的代码片段. 在任何有监督机器学习项目的模型构建阶段,我们训练模型的目的是从标记的 ...

  6. 真香啊,机器学习中这3种交叉验证方法要掌握

    交叉验证是机器学习中常用的一种策略,其核心是对数据集进行划分,本文介绍sklearn中的3种交叉验证时划分数据集的方法: KFold StratifiedKFold GroupKFold 这里来举例说 ...

  7. 训练集山准确率高测试集上准确率很低_推荐算法改版前的AB测试

    编辑导语:所谓推荐算法就是利用用户的一些行为,通过一些数学算法,推测出用户可能喜欢的东西:如今很多软件都有这样的操作,对于此系统的设计也会进行测试:本文作者分享了关于推荐算法改版前的AB测试,我们一起 ...

  8. 训练集山准确率高测试集上准确率很低_拒绝DNN过拟合,谷歌准确预测训练集与测试集泛化差异,还开源了数据集 | ICLR 2019...

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 深度神经网络(DNN)如今已经无处不在,从下围棋到打星际,DNN已经渗透到图像识别.图像分割.机器翻译等各种领域,并且总是表现惊艳. 然而, ...

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

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

  10. 机器学习中训练集、验证集和测试集的区别

    通常,在训练有监督的机器学习模型的时候,会将数据划分为训练集.验证集合测试集,划分比例一般为0.6:0.2:0.2.对原始数据进行三个集合的划分,是为了能够选出效果(可以理解为准确率)最好的.泛化能力 ...

最新文章

  1. 2022-2028年中国地沟油制生物柴油行业市场研究及前瞻分析报告
  2. cocos2dx在eclipse环境下集成ucsdk
  3. C#实现的正余玄函数图象
  4. Jmeter性能测试之JDBC Request连接数据库
  5. vue 渲染函数处理slot_面试官:Vue 和 React 对于组件的更新粒度有什么区别?
  6. CVPR 2021 | 双图层实例分割,大幅提升遮挡处理性能
  7. 使用cmake安装mysql5.5.13
  8. c#如何将子窗体显示到父窗体的容器(panel)控件中
  9. Hello,My first blog!
  10. PTA14、生日悖论 (10 分)
  11. SQL Server 2005 实现数据库同步备份 过程--结果---分析
  12. 可能存在无限递归_无限分类递归+排序解剖
  13. atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结
  14. CRMEBv3.1微商城源码,含小程序商城,公众号商城,H5商城
  15. 互联网创新创业大赛优秀范例_【互联网+大学生创新创业大赛项目计划书】创新创业大赛作品范例...
  16. Linux下mysql数据恢复
  17. 网上订餐php论文,php032网上订餐系统
  18. three.js中正交和透视投影相机的应用
  19. foxmail客户端设置网易邮箱--提示邮箱地址或密码错误
  20. 自适应动态规划matlab,自适应动态规划ADP

热门文章

  1. SIGIR 2021 | 推荐系统相关论文分类整理
  2. ROS IDE —— RoboWare Studio
  3. 计算机网络与网络管理 基础知识
  4. VTS 固态雷达 OCEANGARD
  5. [rtsp @ 0x55ba1dae9200] UDP timeout, retrying with TCP的解决办法
  6. 如何生成带标高的西安80坐标系等高线
  7. 真正理解mybatis拦截器以及Interceptor和Plugin作用
  8. 【LINUX】Linux之Ubuntu系统安装搜狗输入法
  9. 海思3559A上编译ffmpeg
  10. Kafka Broker