转自 https://www.cnblogs.com/rainsoul/p/6373385.html

在以前的网络训练中,有关于验证集一直比较疑惑,在一些机器学习的教程中,都会提到,将数据集分为三部分,即训练集,验证集与测试集,但是由于工作中涉及到的都是神经网络的训练,大部分的情况是将数据集分为train以及test两部分,直接用train set进行网络的训练,test set进行accuracy的测试,最后在选取accuracy最高的迭代次数所对应的模型使用,一直延续的就是这样一个套路,对于验证集的疑惑一直没有得到解决。

今天看到了一篇博客,对于这个问题的分析较为透彻,我才弄明白了一点,下面是自己的一点理解,写在这里,供以后查阅,也希望看到的网友们能够给我指点错误,共同学习。

首先要明确的一点是,验证集以及交叉验证是用于模型选取过程中的,而不是模型训练过程中的!

我的疑问产生的原因是,我没有完整的走完整个机器学习的全过程,正常情况下,采用机器学习的方法解决一个实际问题的过程应该大致包括以下几个步骤:问题抽象-》模型选择-》模型训练-》模型应用。但是由于我一开始接触机器学习就是神经网络方面的东西,通常都是拿到一个公认的性能比较好的网络模型,用自己的数据集进行训练,调整模型的参数,使该模型适用与我们当前的数据集。这样的一个过程实际上相当于承认了我所选择的神经网络的网络架构是一个“最优”的模型了(这个“最优”是大牛们验证得到的结果),将“问题抽象-》模型选择”这两个步骤都省略掉了(大牛们替我做过了),只做了后面的两个步骤,那么此时根本就没有模型选取的过程,也就没有采用验证集的必要性了,这也就是我为什么没有见过验证集出现的原因了。

这里附上莫烦的教程,检验神经网络,从why和how两个维度展开。

明确了上面的原因之后,那么验证集以及交叉验证等方法就可以按照下面的过程进行理解了:

1、有一个实际问题需要用机器学习的方式进行求解,首先对该问题进行数学上的抽象(用数学语言进行描述,向量化特征表示等过程);

2、对于该问题,采取机器学习的方式进行解决的话,有n个可供选择的模型model1, model2,......modeln(比如这n个模型可以是不同阶次的拟合多项式);

3、将我们所拥有的数据集分为三部分(数据集充足的前提下,不充足的时候则用交叉验证的手段),分别对这n个模型的性能进行评估,得到“最优”的模型modelk;

4、将所有数据都用作训练集,对modelk进行训练,得到modelk的最优参数。

总结一句,就是验证集合是在没有确定什么模型最优的时候采用的,确定下来之后,就可以将所有的数据集都用作训练,得到最优的模型参数。

机器学习中的train valid test以及交叉验证的更多相关文章

  1. MATLAB曲面插值及交叉验证

    在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点.插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值.曲面插值是对三维数据进行离 ...

  2. [深度概念]·K-Fold 交叉验证 (Cross-Validation)的理解与应用

    K-Fold 交叉验证 (Cross-Validation)的理解与应用 我的网站 1.K-Fold 交叉验证概念 在机器学习建模过程中,通行的做法通常是将数据分为训练集和测试集.测试集是与训练独立的 ...

  3. K-Fold 交叉验证

    转载--原文地址 www.likecs.com 1.K-Fold 交叉验证概念 在机器学习建模过程中,通行的做法通常是将数据分为训练集和测试集.测试集是与训练独立的数据,完全不参与训练,用于最终模型的 ...

  4. 机器学习:weka中Evaluation类源码解析及输出AUC及交叉验证介绍

    在机器学习分类结果的评估中,ROC曲线下的面积AOC是一个非常重要的指标.下面是调用weka类,输出AOC的源码: try { // 1.读入数据集 Instances data = new Inst ...

  5. 机器学习——交叉验证,GridSearchCV,岭回归

    0.交叉验证 交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set) ...

  6. 机器学习基础:(Python)训练集测试集分割与交叉验证

    在上一篇关于Python中的线性回归的文章之后,我想再写一篇关于训练测试分割和交叉验证的文章.在数据科学和数据分析领域中,这两个概念经常被用作防止或最小化过度拟合的工具.我会解释当使用统计模型时,通常 ...

  7. 斯坦福大学公开课机器学习:advice for applying machine learning | model selection and training/validation/test sets(模型选择以及训练集、交叉验证集和测试集的概念)

    怎样选用正确的特征构造学习算法或者如何选择学习算法中的正则化参数lambda?这些问题我们称之为模型选择问题. 在对于这一问题的讨论中,我们不仅将数据分为:训练集和测试集,而是将数据分为三个数据组:也 ...

  8. python 机器学习中模型评估和调参

    在做数据处理时,需要用到不同的手法,如特征标准化,主成分分析,等等会重复用到某些参数,sklearn中提供了管道,可以一次性的解决该问题 先展示先通常的做法 import pandas as pd f ...

  9. [机器学习] 训练集(train set) 验证集(validation set) 测试集(test set)

    在有监督(supervise)的机器学习中,数据集常被分成2~3个即: 训练集(train set) 验证集(validation set) 测试集(test set) 一般需要将样本分成独立的三部分 ...

随机推荐

  1. nginx 配置 HTTPS 及http 强制跳转https.

    #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...

  2. Delphi编程之爬取贴吧多页帖子图片

    接着上一篇文章说一下我们如何爬取多页帖子的图片. 第一步,还是随便找个贴吧,这次我们就找图片相对较少的射雕英雄传吧. 把页面拉到最底下,在页码区域单击右键,选择检查. 在这里我们看到了页码的代码区域, ...

  3. Python学习第七课

    Python学习第七课 'Alex' "Alex"print('hello'*5) #重复输出字符串 print('hellowold'[2:]) #类似于切片操作:会取出 llo ...

  4. PHP为什么有人学不会

    互联网进入到人们生活中的方方面面了,世界首富比尔盖茨多次提到青少年编程,而编程是一种思维习惯的转化. 作为写了10几年程序的人,我听到过一些说编程不好学的抱怨. 从目前见到的数据统计,主要是因为在大学 ...

  5. MAC--NPAPI学习(一)简要介绍NPAPI的函数

    NPAPI是浏览器与插件交互的接口,下面先简要介绍一下NPAPI的函数: Mach-o entry points NPError NP_Initialize(NPNetscapeFuncs* brow ...

  6. python 类的定义 实例化 实例完后初始化

    先来看看 类的__init__, 类的__new__ , 元类的__new__的执行顺序 class TMetaclass(type): def __new__(cls,name,bases,attr ...

  7. 开发Canvas 绘画应用(一):搭好框架

    毕业汪今年要毕业啦,毕设做的是三维模型草图检索,年前将算法移植到移动端做了一个小应用(利用nodejs搭的服务),正好也趁此机会可以将前端的 Canvas 好好学一下~~毕设差不多做完了,现将思路和代 ...

  8. ZIP、tar.gz压缩时排除指定目录

    1.ZIP 压缩时排除一个文件夹下所有内容zip -r sss.zip sss/ -x "sss/222/*" 压缩时排除指定多个文件夹下所有内容zip -r sss.zip ss ...

  9. 02MYSQL查询语句

    查询语句是用于将表里的数据查询出来==查询可以返回一个结果集(表) | 或者的意思   * 代表当前表的所有字段 **查询语句的语法:select *| 字段名列表 from 表名 [where 条件 ...

  10. Matlab 提取R,G,B颜色分量

    >> im = imread('ny.png'); >> r = im(:,:,1); >> g = im(:,:,2); >> b = im(:,:, ...