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

了解一个模型对于新场景的泛化能力的唯一办法就是,让模型真实地去处理新场景。做法之一是将其部署在生产环境,然后监控它的输出。这个方法用起来不错,不过如果模型非常糟糕,你的用户就会抱怨——所以这显然不是最好的办法。
      更好的选择是将你的数据分割成两部分:训练集和测试集。顾名思义,你可以用训练集的数据来训练模型,然后用测试集的数据来测试模型。应对新场景的误差率称为泛化误差(或者样例外误差),通过测试集来评估你的模型,就可以得到对这个误差的评估。这个估值可以告诉你,你的模型在处理新场景时的能力如何。 (通常使用80%的数据进行训练,保留另外的20%来做测试)
     如果训练误差很低(模型对于训练集来说很少出错),但是泛化误差很高,那说明你的模型对于训练数据存在过度拟合。

验证集

所以评估一个模型很简单:用测试集就行了。现在假设你在两个模型(一个线性模型和一个多项式模型)之间犹豫不决:如何做出判断呢?做法是训练两个模型,然后对比它们对测试数据的泛化能力。
       现在让我们假设线性模型的泛化能力更强,但是你想要应用一些正则化来避免过度拟合。问题又来了,你要如何选择正则化超参数的值呢?做法之一是使用100个不同的超参数值来训练100个不同的模型。然后假设你由此找到了最佳的超参数值,它生成的模型泛化误差最小,比如仅仅5%。然后你将这个模型运行在生产环境,可是很不幸,它并没有如预期那样工作,反而产生了15%的误差。这到底发生了什么?
       问题出在你对测试集的泛化误差进行了多次度量,并且调整模型和超参数来得到拟合那个测试集的最佳模型。这意味着该模型对于新的数据不太可能有良好的表现。
       常见的解决方案是再单独分出来一个保留集合,称为验证集。在训练集上,使用不同的超参数训练多个模型,然后通过验证集,选择最好的那个模型和对应的超参数,当你对模型基本满意之后,再用测试集运行最后一轮测试,并得到泛化误差的估值。

为了避免验证集“浪费”太多的训练数据, 常见的技术是使用交叉验证: 将训练集分成若干个互补子集, 然后每个模型都通过这些子集的不同组合来进行训练, 之后用剩余的子集进行验证。 一旦模型和超参数都被选定, 最终的模型会带着这些超参数对整个训练集进行一次训练, 最后再用测试集测量泛化误差。

一文弄懂:训练集、测试集、验证集相关推荐

  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. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  4. 一文弄懂Flink网络流控及反压

    一文弄懂Flink网络流控及反压 1. 为什么需要网络流控? 2. 网络流控的实现:静态限速 3. 网络流控的实现:动态反馈/自动反压 3.1 案例一:Storm 反压实现 3.2 案例二:Spark ...

  5. 在Caffe的训练过程中打印验证集的预测结果

    起因:Caffe里的GoogLeNet Inception V1只能输出对应于三个loss的accuracy,我想计算precision,recall和F1-measure.但是调用caffe的Pyt ...

  6. 【一文弄懂】优先经验回放(PER)论文-算法-代码

    [一文弄懂]优先经验回放(PER)论文-算法-代码 文章目录 [一文弄懂]优先经验回放(PER)论文-算法-代码 前言: 综合评价: 继续前言唠叨 per论文简述: 参考博客: 背景知识 A MOTI ...

  7. 并发、并行、同步、异步、进程,线程、串行、并行?一文弄懂八大概念

    并发.并行.同步.异步.进程,线程.串行.并行?一文弄懂八大概念 参考博文:并发.并行.串行.同步.异步的区别? java多线程详解(并发,并行,同步) 文章目录 并发.并行.同步.异步.进程,线程. ...

  8. 一文弄懂:集肤效应、邻近效应、边缘效应、涡流损耗

    一文弄懂:集肤效应.邻近效应.边缘效应.涡流损耗 转自微信公众号:张飞实战电子 1.集肤效应 1.1集肤效应的原理 图中给出的是载流导体纵向的剖面图,当导体流过电流(如图中箭头方向)时,由右手螺旋法则 ...

  9. 一文弄懂各种loss function

    有模型就要定义损失函数(又叫目标函数),没有损失函数,模型就失去了优化的方向.大家往往接触的损失函数比较少,比如回归就是MSE,MAE,分类就是log loss,交叉熵.在各个模型中,目标函数往往都是 ...

  10. 一文弄懂 Diffusion Model

    什么是 Diffusion Model 一.前向 Diffusion 过程 Diffusion Model 首先定义了一个前向扩散过程,总共包含T个时间步,如下图所示: 最左边的蓝色圆圈 x0 表示真 ...

最新文章

  1. Matlab与线性代数 -- 方阵的行列式
  2. go 调用其他文件函数_一文读懂Go中软件包概念
  3. 华为p40pro怎么用鸿蒙,数码知识:华为p40pro是鸿蒙系统吗系统版本
  4. 【并查集】家谱(luogu 2814/ssl 2343)
  5. php文件显示不完整,github文件显示不全
  6. 数字的可视化:python画图之散点图sactter函数详解
  7. UI设计使用模板素材|登录界面设计
  8. sqlyog设置简体中文_SQLyog中文版使用教程
  9. 企业创新系列之:雨巷邂逅
  10. Pascal 语言中的关键字及保留字
  11. c# 从sql 数据库生成 excel (转)
  12. 微信小程序---开通开发环境的理解
  13. sourcetree合并分支_不会git命令,没关系啊,还有强大的图形界面工具SourceTree
  14. 高德地图车机版缩放版_主图操作-开发指南-高德地图车机版 | 高德地图API
  15. 红外解码软件 android,红外线遥控器软件解码程序(能解大部分遥控器的编码)
  16. 分享CrystalDiskInfo8.2.4与CrystalDiskMark6.0.2个性版本下载
  17. Unity-Animator深入系列---测试CrossFade和CrossFadeInFixedTime
  18. 国际物流、快递、空运、海运、FBA头程、专线分别都有什么不同
  19. Apriori关联分析算法 -尿布与啤酒的故事
  20. Android之butterknife(懒人库)

热门文章

  1. java ps old gen perm gen_java – JVM YoungGen 0%,Perm Gen 99%,OldGen Full
  2. N条线段求交的扫描线算法
  3. layui搭建后台管理框架
  4. 我对SOA的反思:SOA架构的本质
  5. jmeter(二十一)jmeter常用插件介绍
  6. ASP错误代码中文说明大全:
  7. 联合概率,边际概率和条件概率
  8. ROS:坐标系之间的关系 (map \ odom \ base_link)
  9. URL中特殊字符的转义
  10. gitlab漏洞导致服务器被植入挖矿程序