转自 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. centos7:ftp上传文件

    ftp> lcd /var/www/sss  上传文件的地址还一种上传方式ftp> passivePassive mode off.ftp> passivePassive mode ...

  2. python学习之路之int()奇怪的报错

    今天闲来无事看了下python基础知识,当学到数据类型转换的int()方法时候.发现了这么一个有意思的事情,算是IDE或是解释器的一个小BUG.(具体原因暂不明,留待以后查找问题) 先讲下环境 操作系 ...

  3. 运维脚本while语法

    循环的意思就是让程序重复地执行某些语句; whiler循环就是循环结构的一种,当事先不知道循环该执行多少次,就要用到while循环; while循环语句的运行过程 使用while循环语句时,可以根据特 ...

  4. centos下搭建openstack的环境

    一.准备环境 linux (centos 7.2(C300的虚机) ) java1.8 官网下载tar包 安装前设置环境变量 JAVA_HOME=/usr/lib/jvm/java-1.8.0-ope ...

  5. vue 用户停留页面超过30分钟未操作 强制退出到登录页面

    先说下主要实现思路,通过给你的根节点绑定mouseover事件,首先声明下当前时间,每次滑过时记录下滑过的时间,两个时间转化成毫秒数,进行对比,如果超过30分钟,则清除token,跳转到login.h ...

  6. 2018—自学Selenium+Python 笔记(二)

    此文记录一些python语法不同之处.. 适合有研发基础的童鞋查阅.. 零基础的童鞋就怪怪一个个学吧! 记录也不一定全,随笔一记 多行语句 total=item1+\ item2+\ item3 &q ...

  7. SharePoint 2013 新特性 (三) 破改式 —— 设计管理器的使用 [2.HTML变身模板页]

    假设你跟我一样,看到了一个非常漂亮的页面,想把这种风格放到SharePoint里,咋办呢,那肯定得自定义个模板页了,好点是SharePoint Designer搞定,差点就得用Visual Studi ...

  8. 【oracle】生成AWR报告

    [第一步]找到awrrpt.sql文件 [ora11g@vm-kvm11820-app ~]$ locate awrrpt.sql /DATA/opt/app/ora11g/product//rdbm ...

  9. Git入门(安装及基础命令行操作)

    一.安装 1.Mac 在Mac中安装Git的方法不止一种.最简单的要数通过Xcode命令行工具.对于Mavericks(10.9)或更高版本的操作系统,当你第一次尝试在终端执行git命令时,系统会自动 ...

  10. Number.toLocalString() js

    地址链接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocal ...