【机器学习】验证集和测试集有什么区别
文章目录
- 定义
- 验证集和测试集的区别
- 为什么验证数据集和测试数据集两者都需要?
- 参考链接:
定义
- Ripley 的著作《模式识别与神经网络》(Pattern Recognition and Neural Networks)中,训练集、验证集和测试集的定义如下:
训练集:用来学习的样本集,用于分类器参数的拟合。
验证集:用来调整分类器超参数的样本集,如在神经网络中选择隐藏层神经元的数量。
测试集:仅用于对已经训练好的分类器进行性能评估的样本集。
- 详细解释
训练数据集(Training Set):
是一些我们已经知道输入和输出的数据集训练机器去学习,通过拟合去寻找模型的初始参数。例如在神经网络(Neural Networks)中, 我们用训练数据集和反向传播算法(Backpropagation)去每个神经元找到最优的比重(Weights)。
验证数据集(Validation Set):
也是一些我们已经知道输入和输出的数据集,通过让机器学习去优化调整模型的参数,在神经网络中, 我们用验证数据集去寻找最优的网络深度(number of hidden layers),或者决定反向传播算法的停止点;在普通的机器学习中常用的交叉验证(Cross Validation) 就是把训练数据集本身再细分成不同的验证数据集去训练模型。
测试数据集(Test Set):
用户测试模型表现的数据集,根据误差(一般为预测输出与实际输出的不同)来判断一个模型的好坏。
验证集和测试集的区别
验证集和测试集的对比
验证集的作用:
使用验证集是为了快速调参,也就是用验证集选择超参数(网络层数,网络节点数,迭代次数,学习率这些)。
另外用验证集还可以监控模型是否异常(过拟合啦什么的),然后决定是不是要提前停止训练。
验证集的关键在于选择超参数,我们手动调参是为了让模型在验证集上的表现越来越好,如果把测试集作为验证集,调参去拟合测试集,就有点像作弊了。
而测试集既 不参与参数的学习过程,也不参与参数的选择过程,仅仅用于模型评价。验证集的正确打开方式:
验证集可以看做参与了 “人工调参” 的训练过程。
一般训练几个 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。
参考链接:
- 机器之心
- https://blog.csdn.net/JNingWei/article/details/78170171
- https://blog.csdn.net/qq_31347869/article/details/98203028
- https://zhuanlan.zhihu.com/p/29133576
【机器学习】验证集和测试集有什么区别相关推荐
- 验证集和测试集有什么区别?
引言 在神经网络学习中,经常会很困惑: 我们需要将原始数据集拆分为三份:训练集.验证集和测试集.但是我也注意到在有些机器学习算法中,数据集往往被拆分为两份:训练集和测试集. 所以我们的问题归纳如下: ...
- 训练集、验证集和测试集的意义
原文 在有监督的机器学习中,经常会说到训练集(train).验证集(validation)和测试集(test),这三个集合的区分可能会让人糊涂,特别是,有些读者搞不清楚验证集和测试集有什么区别. I. ...
- 机器学习典型步骤以及训练集、验证集和测试集概念
1. 机器学习典型步骤 数据采集和标记 数据清洗 特征选择 如房子的面积.地理位置.朝向.价格等. 模型选择 有监督还是无监督,问题领域.数据量大小.训练时长.模型准确度等多方面有关. 模型训练和测试 ...
- 【入门篇】如何正确使用机器学习中的训练集、验证集和测试集?
[注] ·本文为转载文章,原文作者是王树义老师,原文链接为 https://zhuanlan.zhihu.com/p/71961236 训练集.验证集和测试集,林林总总的数据集合类型,到底该怎么选.怎 ...
- 训练集、验证集和测试集这三个名词的区别
训练集.验证集和测试集这三个名词在机器学习领域极其常见,但很多人并不是特别清楚,尤其是后两个经常被人混用. 在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train ...
- 如何正确使用机器学习中的训练集、验证集和测试集?
王树义 读完需要 19 分钟 速读仅需7分钟 训练集.验证集和测试集,林林总总的数据集合类型,到底该怎么选.怎么用?看过这篇教程后,你就能游刃有余地处理它们了. 1 问题 审稿的时候,不止一次,我遇到 ...
- 验证集和测试集的区别?
昨天一直在想验证集和测试集的问题,越想越迷- 问题是这样的,大部分网络的训练都是这么一个套路:训练迭代 n 个 epoch 以后就进行一次验证,然后网络会输出在验证集上的 loss 或者其他评价指标. ...
- 验证集和测试集的区别
昨天一直在想验证集和测试集的问题,越想越迷- 问题是这样的,大部分网络的训练都是这么一个套路:训练迭代 n 个 epoch 以后就进行一次验证,然后网络会输出在验证集上的 loss 或者其他评价指标. ...
- 【神经网络】学习笔记十五——训练集,验证集和测试集
以前一直知道神经网络划分数据集时要分为训练集,测试集和验证集,但不知道并且一般以6:2:2的比例划分,到头来不知道这三者各是啥,以及他们的作用是什么.本片文档解释一下三者的作用. 重点在于验证集和测试 ...
- 【小白学PyTorch】 2.浅谈训练集验证集和测试集
文章目录: 经验误差与过拟合 评估方法 经验误差与过拟合 关键词:错误率(error rate),精度(accuracy). 错误率好理解,就是m个样本中,a个样本分类错误,则错误率E = a/m . ...
最新文章
- 基于Redis实现一个分布式锁
- COM编程之四 引用计数
- r语言 小树转化百分数_“小树”机器人1.0新品发布会
- kaggle(02)-房价预测案例(基础版)
- 为什么选择Cassandra
- 【Node学习】—运行node服务demo
- 将两个不同格式的XML文件,进行节点对照,并生成一个用于对照功能的XML
- 里式替换(LSP)跟多态有何区别?
- Rust: 属性(attribute)的含义及文档大全
- 腾讯云和阿里云短信接口区别
- 皮尔森相关系数_克莱姆相关系数的计算
- xl2tpd服务一键安装
- Arduino使用火焰传感器
- 文件管理android2.3,ES文件浏览器(ES File Explorer)v4.0.2.3 优化版-好用的安卓文件管理器...
- php larval 数据库when,Laravel DB类操作数据库
- 与计算机运算速度相关参数,计算机的运算速度与什么有关
- [艾兰岛]制作传送门之传送技能——kura酱长期更新
- 自动化运维之k8s——Helm、普罗米修斯、EFK日志管理、k8s高可用集群(未完待续)
- 记一次阿里云k8s部署-测试存储
- CentOS 之 libffi-devel 安装