2019-12-20 20:01:00

数据在人工智能技术里是非常重要的!本篇文章将详细给大家介绍3种数据集:训练集、验证集、测试集。

同时还会介绍如何更合理的讲数据划分为3种数据集。最后给大家介绍一种充分利用有限数据的方式:交叉验证法。

先用一个不恰当的比喻来说明3种数据集之间的关系:

  • 训练集相当于上课学知识
  • 验证集相当于课后的的练习题,用来纠正和强化学到的知识
  • 测试集相当于期末考试,用来最终评估学习效果

什么是训练集?

训练集(Training Dataset)是用来训练模型使用的。

在《这应该是全网最好的「机器学习」科普文》里我们介绍了机器学习的7个步骤,训练集(Training Dataset)主要在训练阶段使用。

什么是验证集?

当我们的模型训练好之后,我们并不知道他的表现如何。这个时候就可以使用验证集(Validation Dataset)来看看模型在新数据(验证集和测试集是不同的数据)上的表现如何。同时通过调整超参数,让模型处于最好的状态

验证集有2个主要的作用:

  1. 评估模型效果,为了调整超参数而服务
  2. 调整超参数,使得模型在验证集上的效果最好

说明:

  1. 验证集不像训练集和测试集,它是非必需的。如果不需要调整超参数,就可以不使用验证集,直接用测试集来评估效果。
  2. 验证集评估出来的效果并非模型的最终效果,主要是用来调整超参数的,模型最终效果以测试集的评估结果为准。

什么是测试集?

当我们调好超参数后,就要开始「最终考试」了。我们通过测试集(Test Dataset)来做最终的评估。

通过测试集的评估,我们会得到一些最终的评估指标,例如:准确率、精确率、召回率、F1等。

扩展阅读:《一文看懂分类模型的评估指标:准确率、精准率、召回率、F1等》

如何合理的划分数据集?

下面的数据集划分方式主要针对「留出法」的验证方式,除此之外还有其他的交叉验证法,详情见下文——交叉验证法。

数据划分的方法并没有明确的规定,不过可以参考3个原则:

  1. 对于小规模样本集(几万量级),常用的分配比例是 60% 训练集、20% 验证集、20% 测试集。
  2. 对于大规模样本集(百万级以上),只要验证集和测试集的数量足够即可,例如有 100w 条数据,那么留 1w 验证集,1w 测试集即可。1000w 的数据,同样留 1w 验证集和 1w 测试集。
  3. 超参数越少,或者超参数很容易调整,那么可以减少验证集的比例,更多的分配给训练集。

交叉验证法

为什么要用交叉验证法?

假如我们教小朋友学加法:1个苹果+1个苹果=2个苹果

当我们再测试的时候,会问:1个香蕉+1个香蕉=几个香蕉?

如果小朋友知道「2个香蕉」,并且换成其他东西也没有问题,那么我们认为小朋友学习会了「1+1=2」这个知识点。

如果小朋友只知道「1个苹果+1个苹果=2个苹果」,但是换成其他东西就不会了,那么我们就不能说小朋友学会了「1+1=2」这个知识点。

评估模型是否学会了「某项技能」时,也需要用新的数据来评估,而不是用训练集里的数据来评估。这种「训练集」和「测试集」完全不同的验证方法就是交叉验证法。

3 种主流的交叉验证法

留出法(Holdout cross validation)

上文提到的,按照固定比例将数据集静态的划分为训练集、验证集、测试集。的方式就是留出法。

留一法(Leave one out cross validation)

每次的测试集都只有一个样本,要进行 m 次训练和预测。 这个方法用于训练的数据只比整体数据集少了一个样本,因此最接近原始样本的分布。但是训练复杂度增加了,因为模型的数量与原始数据样本数量相同。 一般在数据缺乏时使用。

k 折交叉验证(k-fold cross validation)

静态的「留出法」对数据的划分方式比较敏感,有可能不同的划分方式得到了不同的模型。「k 折交叉验证」是一种动态验证的方式,这种方式可以降低数据划分带来的影响。具体步骤如下:

  1. 将数据集分为训练集和测试集,将测试集放在一边
  2. 将训练集分为 k 份
  3. 每次使用 k 份中的 1 份作为验证集,其他全部作为训练集。
  4. 通过 k 次训练后,我们得到了 k 个不同的模型。
  5. 评估 k 个模型的效果,从中挑选效果最好的超参数
  6. 使用最优的超参数,然后将 k 份数据全部作为训练集重新训练模型,得到最终模型。

k 一般取 10 数据量小的时候,k 可以设大一点,这样训练集占整体比例就比较大,不过同时训练的模型个数也增多。 数据量大的时候,k 可以设小一点。

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

  1. 一文看懂:芯片IC的封装/测试流程

    一文看懂:芯片IC的封装/测试流程 流程 IC Package (IC的封装形式)指芯片(Die)和不同类型的框架(L/F)和塑封料(EMC)形成的不同外形的封装体. IC Package种类很多,可 ...

  2. 白夜:一文看懂AI项目流程及边缘设备开发

    在<AI未来星球>内部群中,白夜从AI项目开发及边缘设备开发的角度,深入浅出的分享了,AI项目开发中的各种感受,以及工作中使用过的一些边缘设备的开发经验. PS:不同嘉宾分享中涉及的相关代 ...

  3. 一文看懂AI数据采集标注未来三年的发展和趋势

    影响人工智能发展的三大要素分别是数据.算法.算力,限于篇幅,本篇内容将重点分析未来几年内人工智能所需要的数据趋势及探讨数据服务商发展方向. 作为AI数据采集标注的领先企业,云测数据分析认为人工智能在经 ...

  4. 业界丨一文看懂AI人才百万美元年薪因何而来?

    来源 | The New York Times 作者 | Cade Metz 编译 | 机器之心:高静宜.不定项.王艺 如今,几乎所有的科技巨头都在进行 AI 项目,它们为了在 AI 时代拔得头筹,甚 ...

  5. 属性子集选择的基本启发方法_一文看懂数据预处理最重要的3种思想和方法

    导读:本文我们考虑应当采用哪些预处理步骤,让数据更加适合挖掘.数据预处理是一个广泛的领域,包含大量以复杂的方式相关联的不同策略和技术.我们将讨论一些最重要的思想和方法,并试图指出它们之间的相互联系. ...

  6. 一文看懂数据预处理最重要的3种思想和方法

    导读:本文我们考虑应当采用哪些预处理步骤,让数据更加适合挖掘.数据预处理是一个广泛的领域,包含大量以复杂的方式相关联的不同策略和技术.我们将讨论一些最重要的思想和方法,并试图指出它们之间的相互联系. ...

  7. 一文弄懂:训练集、测试集、验证集

    训练集:训练集的数据来训练模型 测试集:用测试集的数据来测试模型,通过测试集来评估你的模型,就可以得到对这个误差的评估 验证集:当使用正则化等算法防止过拟合时,需要用验证集得到最佳的超参数和模型 了解 ...

  8. 一文看懂“语音识别ASR” | AI产品经理需要了解的AI技术概念

    原标题:一文看懂"语音识别ASR" | AI产品经理需要了解的AI技术概念 温馨提示:文末有[重大福利]:优惠券(金额很大) for 三节课<产品经理P2(进阶)系列课程&g ...

  9. 一文看懂“声纹识别VPR” | AI产品经理需要了解的AI技术概念_团员分享_@cony

    前言:声纹识别是AI领域中一个看似很小.但其实有机会在近期落地,且比较有意思的细分方向:本文作者是"AI产品经理大本营"团员@cony  ,她总结了AI产品经理"最必要& ...

最新文章

  1. codevs1258 关路灯(☆区间dp)
  2. vue 循环遍历list_vue使用map代替Aarry数组循环遍历的方法
  3. 腾讯十周年,看看你的QQ是什么时候注册的?
  4. java线程名_java多线程
  5. [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传
  6. Phoenix Contact 多款工业产品被曝多个高危漏洞
  7. SaltStack 修复 Stack minion中的提权漏洞 (CVE-2020-28243)
  8. C#之xml配置文件读写
  9. 03.Java多线程并发库API使用2
  10. libiconv android编译,NDK编译经常使用开源库-libiconv
  11. 用拉普拉斯变换求零状态响应_【解析几何】椭圆的仿射变换(伸缩变换)
  12. YARN 作业执行流程
  13. React-笔记整理
  14. 【第16章】 网络安全风险评估技术原理与应用 (软考:信息安全工程师)-- 学习笔记
  15. 华为mate40Android,【猫哥爆料】史上最强Mate40官宣,坐实年度安卓机皇!
  16. 一场技术人的年终盛典:9个老兵对2016年总结与思考
  17. 幻影坦克制作流程和步骤
  18. Powershell免杀系列(二)
  19. javascript函数总结
  20. .NET 控件集 ComponentOne 2018V2正式发布,提供轻量级的 .NET BI 仪表板

热门文章

  1. angularjs html5模式,angularjs – 确定在控制器中启用了HTML5模式
  2. Yann LeCun:发现智能原理是AI的终极问题 | 独家对话
  3. 高效职场人不得不懂的“脑”知识
  4. 不存在完美的入门书,但是有些书在某些方面很惊艳
  5. 一本冷门书:以色列闪盘之父的创业故事
  6. 教授在飞机上做微积分,被当作恐怖分子抓了......
  7. 开启Web金库:互联网业务成功之道——前言
  8. 开源人工智能使用卷积网格自动编码器生成3D面部
  9. GAN Zoo:千奇百怪的生成对抗网络,都在这里了
  10. 一文读懂支持向量积核函数(附公式)