参考:李航–《统计学习方法》
https://www.jianshu.com/p/7e032a8aaad5
https://zhuanlan.zhihu.com/p/20900216?refer=intelligentunit

训练集、验证集、测试集

如果给定的样本数据充足,我们通常使用均匀随机抽样的方式将数据集划分成3个部分——训练集、验证集和测试集,这三个集合不能有交集,常见的比例是8:1:1。需要注意的是,通常都会给定训练集和测试集,而不会给验证集。这时候验证集该从哪里得到呢?一般的做法是,从训练集中均匀随机抽样一部分样本作为验证集。

训练集

训练集用来训练模型,即确定模型的权重和偏置这些参数,通常我们称这些参数为学习参数。

验证集

而验证集用于模型的选择,更具体地来说,验证集并不参与学习参数的确定,也就是验证集并没有参与梯度下降的过程。验证集只是为了选择超参数,比如网络层数、网络节点数、迭代次数、学习率这些都叫超参数。比如在k-NN算法中,k值就是一个超参数。所以可以使用验证集来求出误差率最小的k。

测试集

测试集只使用一次,即在训练完成后评价最终的模型时使用。它既不参与学习参数过程,也不参数超参数选择过程,而仅仅使用于模型的评价。
值得注意的是,千万不能在训练过程中使用测试集,而后再用相同的测试集去测试模型。这样做其实是一个cheat,使得模型测试时准确率很高。

交叉验证

之所以出现交叉验证,主要是因为训练集较小。无法直接像前面那样只分出训练集,验证集,测试就可以了(简单交叉验证)。
需要说明的是,在实际情况下,人们不是很喜欢用交叉验证,主要是因为它会耗费较多的计算资源。一般直接把训练集按照50%-90%的比例分成训练集和验证集。但这也是根据具体情况来定的:如果超参数数量多,你可能就想用更大的验证集,而验证集的数量不够,那么最好还是用交叉验证吧。至于分成几份比较好,一般都是分成3、5和10份。

交叉验证的实现

首先我们给出下面的图

图上面的部分表示我们拥有的数据,而后我们对数据进行了再次分割,主要是对训练集,假设将训练集分成5份(该数目被称为折数,5-fold交叉验证),每次都用其中4份来训练模型,粉红色的那份用来验证4份训练出来的模型的准确率,记下准确率。然后在这5份中取另外4份做训练集,1份做验证集,再次得到一个模型的准确率。直到所有5份都做过1次验证集,也即验证集名额循环了一圈,交叉验证的过程就结束。算得这5次准确率的均值。留下准确率最高的模型,即该模型的超参数是什么样的最终模型的超参数就是这个样的。

交叉验证与训练集、验证集、测试集相关推荐

  1. 训练集(train set) 验证集(validation set) 测试集(test set)

    在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train set) 验证集(validation set) 测试集(test set). http://blog.si ...

  2. [机器学习] 训练集(train set) 验证集(validation set) 测试集(test set)

    在有监督(supervise)的机器学习中,数据集常被分成2~3个即: 训练集(train set) 验证集(validation set) 测试集(test set) 一般需要将样本分成独立的三部分 ...

  3. 机器学习:样本集、验证集(开发集)、测试集

    样本集.验证集(开发集).测试集. Ripley, B.D(1996)在他的经典专著Pattern Recognition and Neural Networks中给出了这三个词的定义. Traini ...

  4. 1.1 训练_开发_测试集

    在最初的时候我们会有一个idea,别如有多少个隐藏层,有几个单元等等,然后尝试并运行这些代码,然后不断的调整. 自然语言,计算机视觉,语音,结构化数据(结构化数据无所不包,广告,电商,物流,计算机安全 ...

  5. NLP文本情感分析:测试集loss比训练集loss大很多,训练集效果好测试集效果差的原因

    NLP情感分析:测试集loss比训练集loss大很多 一.前言 二.原因 一.前言 最近在学习神经网络自然语言处理的相关知识,发现运行的之后测试集的loss比训练集的loss大很多,而accuracy ...

  6. 1.5 训练_开发_测试集划分

  7. 一文看懂 AI 训练集、验证集、测试集(附:分割方法+交叉验证)

    2019-12-20 20:01:00 数据在人工智能技术里是非常重要的!本篇文章将详细给大家介绍3种数据集:训练集.验证集.测试集. 同时还会介绍如何更合理的讲数据划分为3种数据集.最后给大家介绍一 ...

  8. 31,32,33_过拟合、欠拟合的概念、L2正则化,Pytorch过拟合欠拟合,交叉验证-Train-Val-Test划分,划分训练集和测试集,K-fold,Regularization

    1.26.过拟合.欠拟合及其解决方案 1.26.1.过拟合.欠拟合的概念 1.26.1.1.训练误差和泛化误差 1.26.1.2.验证数据集与K-fold验证 1.26.1.3.过拟合和欠拟合 1.2 ...

  9. 机器学习中的训练集 验证集 测试集的关系

    1.划分测试集目的 为了了解一个模型对新样本的泛化能力,唯一的办法是:让已经训练好的模型真正的处理新的样本. 解决方法: 将原始数据划分成两个部分:训练集 测试集.可以使用训练集来训练模型,然后用测试 ...

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

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

最新文章

  1. 在已创建的DataTable对象中添加在首列一列
  2. 【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 第三次迭代 | 中心元变换 | 检验数计算 | 最优解判定 )
  3. java创建主键自增表_oracle创建表时设置自增主键
  4. mysql 结构优化建议_MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)...
  5. 【原创】MySQL里求给定的时间是所在月份的第几个礼拜
  6. restlet使用_使用Restlet Framework构建联网汽车
  7. Linux启动报:UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY问题解决
  8. 恋爱必经阶段,过不来就分了
  9. C#多态 (小结转载)
  10. poj2828 Buy Tickets
  11. Ubuntu16.04安装python3.6
  12. Oracle相同的一个SQL执行计划截然不同的解决方法
  13. 【RDMA】文档和教程和相关知识
  14. Maven项目管理实战(二)--pom.xml
  15. GGS校园超市购物系统
  16. 盒子加内边距和变宽的溢出问题
  17. abp框架发送邮件设置和问题处理
  18. ETC PSAM指令记录
  19. UESTC 758 P酱的冒险旅途【贪心】
  20. 电视盒子怎么K歌?当贝家庭KTV音响套装助力客厅K歌

热门文章

  1. 小明开了一家糖果店、把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖 小朋友来买糖的时候,他就用两种包装来组合,当然有些糖果数目是无法组合出来的,比如要买10颗糖 在这种包装情况下,最大不能买到
  2. button是块级元素吗_前端面试必知必会的十点,你都知道吗?
  3. 职务与职级并行套改表_职务职级并行没有如期而至,2020年会如愿而至吗?
  4. 计算机科学家图灵,伟大的计算机科学家图灵
  5. 用欧拉角表示旋转(方位)heading pitch bank 含义,形象的图示
  6. 绘制grib2格式大气数据(windows下 GrADS wgrib2 g2ctl perl)
  7. 图像处理代码合集:特征提取-图像分割-分类-匹配-降噪
  8. Confluence 6 你模板中可用的对象
  9. Java同步(Synchronization)
  10. 改变button中文字的对齐方式