机器学习测试集选择方法

目录

  • 机器学习测试集选择方法
    • 留出法
      • 多次留出法选择
    • 交叉验证法
      • 留一法交叉验证
    • 自助法
    • 总结

目前来说总共有三种测试集选择方法:

  • 留出法
  • 交叉验证法
  • 自助法

以下分别对三种方法进行讨论
本文约定如下:
D :代表数据集
S :代表训练集
T :代表测试集

留出法

留出法的原理相对简单, 就是从数据集-D中选择一部分出来作为训练集-S,剩下的一部分作为测试集-T

需要注意的事项:
在选择测试集与训练集的时候双方并没有存在交集, 并且需要保证它们的数据分布性存在一致性

比如: 数据集中有100个正例,50个负例,那么我们就需要保证测试集与训练集中的正例负例比例应该是2:1的状态.

目前测试集选择的比例在于: 20% -> 35%之间

多次留出法选择

在单次流出法的选择中,为了防止数据分布不一致的情况和出现训练特例的情况, 一般的做法是进行多次随机的选择,然后将多次训练得到结果平均.

实际上很难实现完全的数据分布一致,因为对于数据特征的处理,在训练初始很容易会出现某些特征被忽略, 因此我们可以引入多次留出.

交叉验证法

交叉验证法实际上与留出法类似, 他将数据集D分为N份,每份之间仍然需要尽量保有一致的数据分布,如下图(来源西瓜书)

如上, 通过多次的交叉训练选择最终可以生成一个测试结果,显然这种选择方式要比留出法要更好.

同时我们也可以进行多次的数据集划分,获得多次的结果.

一般把数据划为K份的数据集我们称为K折验证法, 交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值

留一法交叉验证

留一验证法的原理相当于把D数据集做最小化的划分, 即每一个数据都是最小单元, 这样的好处在于可以最小化的损失训练集(每次训练都只缺少一个数据).
但是也引入新的问题,当数据量较大的时候, 我们需要训练很多次,比如数据量为1000w,那我们就要训练1000w个数据, 这显然是不合理的.

自助法

给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次从D中挑选一个样本,将其放入D’,然后再将该样本放回初始数据集D中;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D’,取极限之后, 就会发现大概有0.368的数据没有被选入D’, 数据推到如下(图片来源西瓜书)

总结

自助法在数据集较小、难以有效划分训练/测试集时比较有用。然而自助法产生的测试集改变了初始数据集的分布,这会引入误差.

因此在数据集比较大时,采用留出法和交叉验证法较好。

今日学习内容--机器学习的测试集选择方法相关推荐

  1. 如何爬升用于机器学习的测试集

    爬坡测试集是一种在不影响训练集甚至开发预测模型的情况下,在机器学习竞赛中实现良好或完美预测的方法.作为机器学习竞赛的一种方法,这是理所当然的,大多数竞赛平台都对其施加了限制,以防止出现这种情况,这一点 ...

  2. ESL3.3 子集的选择学习笔记(最优集选择,向前向后逐步选择等方法)

    3.3 子集的选择 这是一篇有关<统计学习基础>,原书名The Elements of Statistical Learning的学习笔记,该书学习难度较高,有很棒的学者将其翻译成中文并放 ...

  3. 机器学习之测试集构造思考

    这篇文章尤其适合平时用通用数据集进行实验比较多而没有自己根据现实场景构造过数据集的同学,可以看看测试集深层次的含义. 背景 所谓的测试集,其实是针对算法而言,用于评估算法效果的样本集合,说白了,就是考 ...

  4. PyTorch 自定义 Dataset 及训练集、测试集划分方法

    实例 1:自定义数据集类,torch.utils.data.random_split() 划分训练集和测试集,通过普通遍历方式使用自定义数据集中的样本 import numpy as np impor ...

  5. 深度学习auc_test auc 和测试集auc 差距非常大

    因为以前的工作经历大部分是在做深度学习,大部分看test auc,顺带看一下train auc,只要测试集和训练集auc差距不是特别特别大,不是特别关注,最近我同事问了我,他的测试集和训练集auc 差 ...

  6. 字节跳动今日学习内容:从外包公司到今日头条offer,一文搞懂

    一.Spring Cloud微服务概念定义 提起微服务,不得不提 Spring Cloud 全家桶系列,Spring Cloud 是一个服务治理平台,是若干个框架的集合,提供了全套的分布式系统解决方案 ...

  7. 字节跳动今日学习内容:靠着这份190页的面试资料,社招面试心得

    2021年1月4日,我终于结束了这两个月以来收到的最好的一个公司的视频面试,短短15分钟,我们双方就再无话题了.我是觉得我不够优秀,配不上这个岗位.面试官可能觉得已经看透我了. 让我回顾一下这稍纵即逝 ...

  8. 2019年9月1日 星期日 今日学习内容

    localStorage的用法 box-sizing: border-box; 函数表达式 事件循环 1.localStorage的用法 作用: 用于本地存储,以键值对的形式存起来的. 首先我想问一下 ...

  9. 机器学习数据集的获取和测试集的构建方法

    这是机器学习入门系列(2)–如何构建一个完整的机器学习项目的第二篇 上一篇机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)介绍了开始一个机器学习项目需要明确的问题,比如当前任务属于有监督还 ...

最新文章

  1. NetworkOnMainThreadException异常
  2. 基于PSR-0编码规范开发一套PHP-MVC框架(一)
  3. Bitmap 索引 vs. B-tree 索引:如何选择以及何时使用?——2-5
  4. vc2010中设置ipch与sdf的位置
  5. SSD论文阅读(Wei Liu——【ECCV2016】SSD Single Shot MultiBox Detector)
  6. 批处理命令set截取字符详解
  7. php中isdefin,在PHP中定義全局常量數組的最“優雅”方法是什么
  8. 【OS学习笔记】二十 保护模式六:保户模式下操作系统内核如何加载用户程序并运行 对应的汇编代码之主引导扇区程序
  9. python用pip安装wordcloud_如何在python3.7中使用pip安装wordcloud
  10. 获取浏览器书签、浏览器文件夹数据
  11. windows做ntp server,linux做ntp client端的配置方法
  12. MYSQL命令行常用命令
  13. linux中的轮询机制select/poll/epoll特点分析
  14. installshield中用release wizard打包.net framework 1.1中文版
  15. 服务器出现硬盘坏道怎么办,硬盘坏道修复全攻略
  16. 2014年Q1-Q3国内创业生态报告:在技术革命的部署阶段,泡沫不是问题
  17. Flask 推理模型,显存一直增长。
  18. 无人驾驶导航定位技术初探(开山篇)
  19. 强化学习个人学习总结
  20. KLEE学习——实例3

热门文章

  1. Typora换行后消除格式
  2. vue 播放 flv 视频
  3. 计算机应用技术电子科大,2014年电子科技大学081203计算机应用技术考研专业目录及考试科目...
  4. 清华转专业20多个学科0人报名!网友:一切为了吃饭
  5. Swift和Objective-C互相调用
  6. 谈薪时记住3个谈判技巧轻松拿高薪
  7. vi 全局替换命令等
  8. 今日又是没有python(预习大物实验 ‘利用光栅衍射法测光波波长’)
  9. 视频编辑软件分析之二——edius
  10. kindle资源下载