版权声明:本文为博主原创文章,转载请注明转自 Scofield's blog[http://blog.csdn.net/scotfield_msn] https://blog.csdn.net/Scotfield_msn/article/details/69945350

机器学习数据挖掘之数据集划分: 训练集 验证集 测试集

Q:将数据集划分为测试数据集和训练数据集的常用套路是什么呢?

A:three ways shown as follow:

1.像sklearn一样,提供一个将数据集切分成训练集和测试集的函数:
默认是把数据集的75%作为训练集,把数据集的25%作为测试集。

2.交叉验证(一般取十折交叉验证:10-fold cross validation)
k个子集,每个子集均做一次测试集,其余的作为训练集。
交叉验证重复k次,每次选择一个子集作为测试集,并将k次的平均交叉验证识别正确率作为结果。

3.训练数据,验证数据(注意区别交叉验证数据集),测试数据(在Coursera上提到)
一般做预测分析时,会将数据分为两大部分。一部分是训练数据,用于构建模型,一部分是测试数据,用于检验模型。但是,有时候模型的构建过程中也需要检验模型,辅助模型构建,所以会将训练数据在分为两个部分:1)训练数据;2)验证数据(Validation Data)。验证数据用于负责模型的构建。典型的例子是用K-Fold Cross Validation裁剪决策树,求出最优叶节点数,防止过渡拟合(Overfitting)。
所以:
训练数据(Test Data):用于模型构建
验证数据(Validation Data):可选,用于辅助模型构建,可以重复使用。
测试数据(Test Data):用于检测模型构建,此数据只在模型检验时使用,用于评估模型的准确率。绝对不允许用于模型构建过程,否则会导致过渡拟合。

版权声明:转载请注明出处 https://blog.csdn.net/JNingWei/article/details/78170171

区别

类别 验证集 测试集
是否被训练到
作用 纯粹用于调超参数 纯粹为了加试以验证泛化性能
使用次数 多次使用,以不断调参 仅仅一次使用
缺陷 模型在一次次重新手动调参并继续训练后所逼近的验证集,可能只代表一部分非训练集,导致最终训练好的模型泛化性能不够 测试集为了具有泛化代表性,往往数据量比较大,测试一轮要很久,所以往往只取测试集的其中一小部分作为训练过程中的验证集
互相转化 验证集具有足够泛化性(一般来说,如果验证集足够大到包括大部分非训练集时,也等于具有足够泛化性了) 验证集具有足够泛化性时,测试集就没有存在的必要了
类比 校内答辩(如果校内答辩比多校联合答辩还有泛化性说服力,那么就没有必要再搞个多校联合答辩了) 多校联合公开答辩

附言

说到底:

  • 验证集是一定需要的;
  • 如果验证集具有足够泛化代表性,是不需要再整出什么测试集的;
  • 整个测试集往往就是为了在验证集只是非训练集一个小子集的情况下,好奇一下那个靠训练集(训练)和验证集(调参)多次接力训练出来的模型是不是具有了泛化性能,因而加试一下图个确定。

references
http://www.cnblogs.com/bourneli/archive/2013/03/11/2954060.html
http://blog.csdn.net/lhx878619717/article/details/49079785
http://blog.csdn.net/chloezhao/article/details/53502674
https://segmentfault.com/q/1010000005917400

机器学习 数据集划分 训练集 验证集 测试集相关推荐

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

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

  2. 训练集 验证集_训练与验证、测试集数据分布不同的情况

    在不同分布的数据集上进行训练与验证.测试 深度学习需要大量的数据,但是有时我们可获得的满足我们真实需求分布的数据并不是那么多,不足以对我们的模型进行训练.这时我们就会收集大量相关的数据加入到训练集中, ...

  3. 机器学习数据集划分-训练集,验证集,测试集

    训练集 作用:估计模型 学习样本数据集,通过匹配一些参数来建立一个分类器.建立一种分类的方式,主要是用来训练模型的. 验证集 作用:确定网络结构或者控制模型复杂程度的参数,超参数 对学习出来的模型,调 ...

  4. 数据集划分——训练集、测试集、验证集按照7:1:2

    数据集划分--训练集.测试集.验证集按照7:1:2 前面我对乳腺超声图像数据库进行数据增强,得到: 然后对数据集进行划分,按照训练集.测试集.验证集7:1:2的比例. 代码: import os im ...

  5. 十折交叉验证10-fold cross validation, 数据集划分 训练集 验证集 测试集

    机器学习 数据挖掘 数据集划分 训练集 验证集 测试集 Q:如何将数据集划分为测试数据集和训练数据集? A:three ways: 1.像sklearn一样,提供一个将数据集切分成训练集和测试集的函数 ...

  6. 机器学习之数据集划分——训练集测试集划分,划分函数,估计器的使用

    训练集测试集划分,划分函数,估计器的使用 参考文章 训练集.验证集和测试集的划分及交叉验证的讲解 划分训练集和测试集的函数学习 sklearn数据集,数据集划分,估计器详细讲解 参考文章 训练集.验证 ...

  7. 机器学习数据集(训练集、测试集)划分方法

    数据集划分方法 留出(Hold-out)法 交叉验证(cross validation)法 自助法(bootstrap)   一个模型的好坏终归还是需要一个客观的评价标准,但是现有标准都比较难以适用于 ...

  8. YOLOv5将自己数据集划分为训练集、验证集和测试集

    在用自己数据集跑YOLOv5代码时候,需要将自己的VOC标签格式数据集转为yolo格式. 首先是要获取自己的数据集,然后再对数据集进行标注,保存为VOC(xml格式).然后再把标注完的数据集划分为训练 ...

  9. python 训练集 测试集 验证集划分_将自己的图片数据集分成训练集、验证集和测试集并用 Tensorflow2.0 导入...

    文章目录项目介绍 划分数据集1.在 dataset 目录下创建三个文件夹 2.将原来 dataset 文件夹中的子文件夹分别复制到这三个文件夹中 3.在 python 中指定所有路径 4.将这三个文件 ...

最新文章

  1. Linux中的sed详解
  2. 人类与AI结合的最佳形态是什么样?|A16Z内部万字报告
  3. mtrand.RandomState.randint low = high
  4. codeforces#254DIV2解题报告
  5. 基于Python的开源人脸识别库,离线识别率高达99.38%
  6. 第三节:创建一个Vue实例,超简单
  7. java 优势和劣势
  8. 关于 Android Studio 鼠标中键的一些技巧
  9. Java获取本机外网ip地址的方法
  10. redis 优惠券秒杀逐步优化
  11. SOLIDWORKS中钣金展开标注是英文怎么办?
  12. 丧尸,只要摧毁头部便会永久停止行动
  13. 基于多线程的随机数生成算法
  14. 在ubuntu18.04 上使用键盘鼠标共享软件 Synergy
  15. Exception的处理
  16. 如何做好大数据监测和舆情案例分析工作的办法
  17. 2021乐平四中高考成绩查询,喜报!乐平高考成绩出炉!2019再创佳绩!!
  18. docker save与docker export的区别
  19. Java面试知识点之Java基础
  20. Spring Bean实例化过程,怎么解决循环依赖

热门文章

  1. arduino低功耗模式_一起来看看新推出的Arduino开发板MKR WAN 1310
  2. 浅谈Openstack网络原理(openstack无法上网?)
  3. 3.矩阵乘法和逆矩阵
  4. 电脑中显示dns服务器可能不可用,DNS服务器可能不可用的解决方法
  5. 购物清单(Python实现)
  6. 《『EcmaScript』之理顺Js中的四种继承
  7. VPP DPDK,不是翻墙!!
  8. SAP中内部订单状态导致不能收货处理实例
  9. 英伟达哭晕在厕所,4090Ti显卡被春晚“首发”
  10. 爬取网易buff CSGO饰品数据