文章目录:

  • 经验误差与过拟合

  • 评估方法

经验误差与过拟合

关键词:错误率(error rate),精度(accuracy)

  • 错误率好理解,就是m个样本中,a个样本分类错误,则错误率E = a/m 。

  • 精度 就是 1-E。其实很简单,但是为什么我还要提一提呢,因为机器学习里还有很多相关名词,例如:准确率,召回率,精确度等等,所以希望大家能清楚认识。

关键词:经验误差(empirical error)

  • 在训练集上,预测输出与样本的真实输出之间的差异(差异!)称为经验误差或训练误差。

关键词:泛化误差(generalization)

  • 在新样本上的误差称为泛化误差。

关键词:过拟合(overfitting)

  • 刚接触机器学习时候,就碰到过拟合这个很抽象的词, 当时是说的曲线拟合 。曲线拟合其实就是一个过程。该过程是通过实际曲线上的一些样本点(成为训练样本),经过一个模型训练,得到一条预测曲线。(敲黑板:拟合就是一个过程)。那么过拟合就是,拟合过头了,预测曲线非常好的适合训练样本,然而对实际曲线的其他样本不太适合。推广一下到分类器(模型)上就是,训练好的分类器对训练样本很好的分类,但是对测试样本的分类结果很糟糕。有过拟合当然有欠拟合啦,欠拟合可以认为是该分类器学习能力太差,连在训练样本上都没有很好的分类,更不要说在测试样本上了。

评估方法

关键词:留出法(hold-out)

  • 怎么将给定的数据集划分为训练集和测试集呢?常用的方法在这里有介绍。首先介绍的是留出法,其实这种方法在国内教材和论文中最常见,就是把数据集D划分为两个互斥的集合,其中一个是训练集,一个是测试集。书中给出的参考划分比例是,训练集66.6%~80%。

关键词:交叉验证法(cross validation)

  • 交叉验证法是竞赛中或者比较正式的实验中用得比较多。什么是交叉验证呢?其实就是将数据集D划分为k个大小相同的互斥的子集,然后用k-1个子集作为训练,剩下那一个子集作为测试。这样就需要训练k个模型,得到k个结果,再取平均即可。这样的方法通常成为“k折交叉验证”。书中还给出了k的参考值,:5,10,20。

关键词:自助法(bootstrapping)  。

  • 第一次听说自助法,也从没在文献中看到过,自助法主要是用于小样本!缺点是容易引入估计偏差。具体操作是这样的,对于m个样本的数据集D,每次随机挑选D中的一个样本放到D’中,挑m次,经过计算D中有大约36.8%(≈1/e)的样本未出现在D’中,这样用D’作为训练集,D\D’(“\”表示集合减法)作为测试集。自助法又称为可重复采样,有放回采样。(第二次看到这个方法的时候,发现,这不就是bagging抽样数据集的方法嘛,只是这里作为划分训练集和测试机的方法。)

关键词:训练集(train set)、验证集(valid set)、测试集(test set)  。

  • 一开始接触机器学习只知道训练集和测试集,后来听到了验证集这个词,发现验证集和之前所认识的测试集的用法是一样的,一直就把验证集和测试集给混淆了。

首先需要知道的是,在工程应用中,最终提交给客户的模型是用尽数据集D中的m个样本训练的模型。也就是说,我们的测试集最终还是要用来训练模型的。之前有说到数据集D划分为训练集和测试集,训练集就是用来训练模型,测试集是用来估计模型在实际应用中的泛化能力,而验证集是用于模型选择和调参的。因此,我个人的理解是在研究过程中,验证集和测试集作用都是一样的,只是对模型进行一个观测,观测训练好的模型的泛化能力。而当在工程应用中,验证集应该是从训练集里再划分出来的一部分作为验证集,用来选择模型和调参的。当调好之后,再用测试集对该模型进行泛化性能的评估,如果性能OK,再把测试集输入到模型中训练,最终得到的模型就是提交给用户的模型。

举例举个高三学生高考的例子吧,

  • 训练集 就是 平时的作业,习题册等

  • 验证集 就是 一模、二模、三模的试题

  • 测试集 就是 高考试题

训练集是给学生进行学习的,提高学生的能力;验证集是用来检验学生的学习方法,学习方向,学习方式,是否正确;测试集是最终考察学生的成绩如何。

不过幸运的是,我们有多次“高考”的机会,只不过,我们不能去分析高考的试题,因为测试集仅仅作为一个验证。

一般来说,当验证集和测试集具有同分布的时候(即模拟题和高考题几乎一样的时候),在模拟考能拿650分,那么在真实考高中也会在650分左右。

- END -

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/662nyZF本站qq群1003271085。加入微信群请扫码进群(如果是博士或者准备读博士请说明):

【小白学PyTorch】 2.浅谈训练集验证集和测试集相关推荐

  1. 【入门篇】如何正确使用机器学习中的训练集、验证集和测试集?

    [注] ·本文为转载文章,原文作者是王树义老师,原文链接为 https://zhuanlan.zhihu.com/p/71961236 训练集.验证集和测试集,林林总总的数据集合类型,到底该怎么选.怎 ...

  2. 如何正确使用机器学习中的训练集、验证集和测试集?

    王树义 读完需要 19 分钟 速读仅需7分钟 训练集.验证集和测试集,林林总总的数据集合类型,到底该怎么选.怎么用?看过这篇教程后,你就能游刃有余地处理它们了. 1 问题 审稿的时候,不止一次,我遇到 ...

  3. 训练集、验证集和测试集这三个名词的区别

    训练集.验证集和测试集这三个名词在机器学习领域极其常见,但很多人并不是特别清楚,尤其是后两个经常被人混用. 在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train ...

  4. 什么是训练集、验证集和测试集?

    在机器学习中,训练集.验证集和测试集是数据集的三个重要部分,用于训练.评估和测试机器学习模型的性能.它们的定义和作用如下: 什么是训练集.验证集和测试集? 训练集:训练集是机器学习模型用于训练和学习的 ...

  5. 机器学习典型步骤以及训练集、验证集和测试集概念

    1. 机器学习典型步骤 数据采集和标记 数据清洗 特征选择 如房子的面积.地理位置.朝向.价格等. 模型选择 有监督还是无监督,问题领域.数据量大小.训练时长.模型准确度等多方面有关. 模型训练和测试 ...

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

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

  7. 训练集、验证集和测试集的意义

    原文 在有监督的机器学习中,经常会说到训练集(train).验证集(validation)和测试集(test),这三个集合的区分可能会让人糊涂,特别是,有些读者搞不清楚验证集和测试集有什么区别. I. ...

  8. Recbole自定义训练集、验证集和测试集推荐

    文章目录 Recbole简介 Recbole使用 自定义训练集.验证集和测试集 Recbole简介 Recbole(中文名称:伯乐)是一款使用Python开发的开源推荐框架,里面集成了大量的推荐模型, ...

  9. 训练集、验证集和测试集的概念及划分原则

    深度学习中,常将可得的数据集划分为训练集(training set),验证集(development set/validation set)和测试集(test set).下文主要回答以下几个问题:一是 ...

最新文章

  1. 微信小程序code 换取 session_key
  2. 反向传播BP 算法之一种直观的解释
  3. 数组及字符串相关知识
  4. CSS日常公用样式与一些解决方案
  5. ios apple语音性别_如何使用Apple的CoreML和Vision API构建图像识别iOS应用
  6. 无意间发现我的博客园的年龄有11年了
  7. 一个 8 岁的“前端老人”
  8. SGU---104 DP
  9. 使用docker-compose 大杀器来部署服务 上(转)
  10. python将视频一帧一帧_python 用opencv接口把视频逐帧转化为图片
  11. 超酷!极通EWEBS竟然不需微软终端服务支持
  12. 数字调制系统工作原理_图文讲解液压系统溢流阀分类与工作原理
  13. python爬虫|post的响应,利用python实现有道翻译在线翻译
  14. php molten,当molten遇到机器学习
  15. 阿里再发10亿助农,店宝宝:中小卖家喜迎流量红利
  16. 邮政局计算寄往美国的国际物品快递资费
  17. 数据挖掘ID3算法详解
  18. python绘制一个时间的七段数码管实例基本的七段数码管绘制
  19. 如何查询oracle 的版本
  20. eigen 列拼接_eigen Dense矩阵拼接

热门文章

  1. notepad++默认的快捷键整理
  2. ThreadPoolTaskExecutor使用详解
  3. eclipse版本详解以及下载安装步骤及启动eclispe报错整理
  4. @RequestMapping,@ResponseBody,@RequestBody用法
  5. 【unity基础系列】1、unity Texture Type设置为Advanced时纹理的格式列表
  6. 枚举类型和各种类型之间转换
  7. php isset缺陷 用array_key_exists
  8. c语言6大设计原则 控制反转,fun6868备用网址-fun6868备用网址
  9. c语言 异或_C语言经典例题来袭!5大方法告诉你答案
  10. 本工作簿不能再使用其他新字体_1.2.16 EXCEL篇之关于工作表的操作合集