关于机器学习中的交叉验证,有一个问题向问问大家? 5C

将数据集随机分为训练集(80%),验证集(10%),测试集(10%)。进行一轮交叉验证操作后,得到了一组最优参数。但是由于数据集是随机划分的,同样的数据集,同样按照8:1:1随机划分数据,当我再一次进行交叉验证,得到的最优参数结果却与上次不同。那么利用交叉验证获取最优参数组合的意义何在?

0

3个回答

用模型拟合不一样的两组随机选取的数据, 导致模型的参数本身就不同吧, 比如最简单的线性回归模型, 拟合不同的数据集, 尽管这两个数据集整体分布一样,
但是由于可能这两个数据集跟整体数据分布还是有些差异, 导致交叉验证得到不同的权值.
当你手上的数据集越大, 跟整体的数据分布越接近的时候, 估计用交叉验证拟合得到的参数变化越小.

1

所以我的做法是,首先分出两部分,train+validate,test,前两个混合,后面的独立出来。

0
cunxinlitian
Gary.fu 回复caozhy: 我所说的效果这里指的是以AUC(Area under the Curve of ROC)评估二元分类模型(这里是20种不同参数组合)的好坏,并不是追求对已知数据的拟合。如果再次随机划分训练集,验证集(对20种模型进行验证,选择AUC最大的那种模型),测试集;那么这次选择的模型与上次的不同,那么到底应该如何去选择模型呢?
6 个月之前 回复
caozhy
caozhy 回复cunxinlitian: 你理解错了,机器学习的目的是使得算法具有泛化能力(未知数据上预测良好),而不是追求已知数据上的“效果”。
6 个月之前 回复
cunxinlitian
Gary.fu 没太懂?
6 个月之前 回复

交叉验证不是还有参数调校的功能吗?比如有两种参数:a和b,假设a有4个备选值,b有5个备选值,那么共有4*5=20种组合,使用验证集的数据来对这20种组合进行评估(利用AUC),最后选出效果最好的一组组合,再对测试集数据进行测试。可是当我再次重复这个步骤时,由于训练集,验证集,测试集的数据虽然还是原来的数据,比例也相同,但是是随机分配的,所以再一次的参数调校却获得是另外一组参数组合,那么利用验证集来进行参数调校获得的最优参数又有什么意义呢?

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
机器学习中常用的交叉验证方法
交叉验证的方法一:简单的交叉验证的步骤如下:1、 从全部的训练数据 S中随机选择 中随机选择 s的样例作为训练集 train,剩余的 作为测试集 作为测试集 test。2、 通过对测试集训练 ,得到假设函数或者模型 。3、 在测试集对每一个样本根据假设函数或者模型,得到训练集的类标,求出分类正确率。4,选择具有最大分类率的模型或者假设。这种方法称为 hold -out cross validati...
机器学习中的交叉验证
交叉验证(Cross validation),交叉验证用于防止模型过于复杂而引起的过拟合.有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证是一种评估统计分析、机器学习算法对独立于训练数据的数据集的泛化能力(generalize
机器学习笔记——模型选择和交叉验证集
通常为了选择能适应一般情况的模型,需要使用交叉验证集来帮助选择模型。即,使用60%的数据作为训练集,使用20%的数据作为交叉验证集,使用20%的数据作为测试集。模型的选择方法为:1、使用训练集训练出10 个模型2、用10个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值)3、选取代价函数值最小的模型4、用步骤3中选出的模型对测试集计算得出推广误差(代价函数的值)...
[交叉验证]机器学习中分类器的选择
在机器学习中,分类器作用是在标记好类别的训练数据基础上判断一个新的观察样本所属的类别。分类器依据学习的方式可以分为非监督学习和监督学习。非监督学习顾名思义指的是给予分类器学习的样本但没有相对应类别标签,主要是寻找未标记数据中的隐藏结构。,监督学习通过标记的训练数据推断出分类函数,分类函数可以用来将新样本映射到对应的标签。在监督学习方式中,每个训练样本包括训练样本的特征和相对应的标签。监督学习的流程
Udacity机器学习入门——交叉验证(cross-validation)
测试数据可以让你评估你的分类器或回归在独立数据集上的性能,还能帮助你避免过度拟合在sklearn中训练/测试分离sklearn链接:http://scikit-learn.org/stable/modules/cross_validation.html加载数据集以适应线性SVM:from sklearn import datasets from sklearn.svm import SVC ir...
机器学习----交叉验证(Cross Validation)简介
转自知乎:https://www.zhihu.com/question/23561944 交叉验证的定义 交叉验证(Cross Validation),有的时候也称作循环估计(Rotation Estimation),是一种统计学上将数据样本切割成较小子集的实用方法,该理论是由Seymour Geisser提出的。 在模式识别(Pattern Recognitio
[读书笔记] 《Python 机器学习》- 使用嵌套交叉验证进行模型选择
通过嵌套交叉验证选择算法对特定数据集进行模型选择
机器学习---之交叉验证的用处与优点
一.评价模型性能 交叉验证主要可以用来评估模型的性能,比如说有一个模型,有一个数据集,如果不使用交叉验证,那就是直接将数据放到网络当中去训练,训练结束后,用新的数据来进行测试,来看看这个模型是否好,但是这个模型对这个新的数据测试效果好不代表对其他新来的数据效果就好,也就是你并不知道这个模型泛化能力是否好,是否过拟合,也许你要用很多不同的数据集来测试一下,如果数据集有限的话,就很难评估模型的泛
机器学习系列之交叉验证、网格搜索
第一部分:交叉验证 机器学习建立和验证模型,常用的方法之一就是交叉验证。在机器学习过程中,往往数据集是有限的,而且可能具有一定的局限性。如何最大化的利用数据集去训练、验证、测试模型,常用的方法就是交叉验证。交叉验证,就是重复的使用数据,对样本数据进行划分为多组不同的训练集和测试集(训练集训练模型,测试集评估模型)。 交叉验证一般使用在数据不是很充足情况。一般问题,如果数据样本量小于一万条,就会...
机器学习 交叉验证
首先,要明确交叉验证是什么?有一点很明确,交叉验证需要将数据集分为训练集和验证集(或者称测试集),在训练集上对模型训练参数,在验证集上看训练出的模型的好坏。当数据比较少的时候,验证集上的泛化误差并不可靠,所以不能表明一个模型比另一个模型要好。交叉验证通过划分数据,确保性能指标是所有数据给出的。  交叉验证分为三种:  - held-out:  最简单,将数据集分成两部分,一部分作为训练集,一
机器学习中数据训练集,测试集划分与交叉验证的联系与区别(含程序)
因为一个模型仅仅重复了刚刚训练过的样本的标签,这种情况下得分会很高,但是遇到没有训练过的样本就无法预测了。这种情况叫做过拟合。为了避免过拟合,一个常见的做法就是在进行一个(有监督的)机器学习实验时,保留一部分样本作为测试集(X_test, y_test)。为了提高训练数据的泛化能力,我们把训练集和测试集对半划分,即:X_test:y_test=1:1,test_size=0.5。但是仅仅如此,再训...
《Python机器学习》读书笔记(八)流水线&交叉验证
Python机器学习读书笔记(八)流水线&交叉验证 1. 基于流水线的工作流 sklearn中的Pipline类,可以拟合出包含任意多个处理步骤的模型,并将模型用于新数据的预测 威斯康辛乳腺癌数据集(Breast Cancer Wisconsin):569个样本,第1列是样本ID,第二列是肿瘤诊断结果(M代表恶性,B代表良性),后面的30列均是特征。 使用panda...
Udacity机器学习入门项目5:预测波士顿房价
机器学习工程师纳米学位 模型评价与验证 项目 1: 预测波士顿房价 欢迎来到机器学习工程师纳米学位的第一个项目!在此文件中,有些示例代码已经提供给你,但你还需要实现更多的功能来让项目成功运行。除非有明确要求,你无须修改任何已给出的代码。以编程练习开始的标题表示接下来的内容中有需要你必须实现的功能。每一部分都会有详细的指导,需要实现的部分也会在注释中以TODO标出。请仔细阅读所有的提示
机器学习——交叉验证与特征选择
k-折叠交叉验证是一种在机器学习中很常用的方法,简单来说就是手头有是10个数据,取2-10为样本数据,用来学习,生成公式后将第一个数据送入公式进行计算,下次则选取第二个数据作为测试数据,1,3-10这九个数据作为样本数据进行学习,如此计算。如此循环十次,可以得到一个错误率,用以判定学习的结果怎么样。  k指的是将你的数据分为k份,进行k次循环,上面的例子的k就是10。如果每一个样例都做测试, 这
机器学习练习(三)——交叉验证Cross-validation
一、选择正确的Model基础验证法 from sklearn.datasets import load_iris # iris数据集 from sklearn.model_selection import train_test_split # 分割数据模块 from sklearn.neighbors import KNeighborsClassifier # K最近邻(kNN,k-Ne
机器学习笔记之交叉验证
在评估算法的效果时,为什么要进行交叉验证呢,查看了官方说明文档后,对交叉验证做了如下的描述: 在了解交叉交叉验证之前,我们先了解如下知识: 过拟合:是指所建立的机器学习模型在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳。为了避免这种情况,通常的做法是执行(监督)机器学习实验时将部分可用数据作为测试集 。关于测试集和训练集的划分,sklearn模型中有如下方法: #导入...
机器学习十 交叉验证
交叉验证(Cross Validation) 定义(摘自百度百科):交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set),首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。 目的:为了获
机器学习--十分钟上手sklearn:特征提取,常用模型,交叉验证
本文转自 十分钟上手sklearn:特征提取,常用模型,交叉验证  写得简洁易懂,机器学习的几个常用算法都做了说明,值得收藏。这一篇虽然叫做:十分钟上手sklearn:特征提取,常用模型,但是写着写着我就想把每一个模型都详细说一下,所以也可以看作是机器学习算法概述了。上一篇我们讲解了如何安装sklearn,导入自带数据集,创建数据,对数据进行预处理,通过上一篇的讲解,相信大家能够感受到sklear...
机器学习——交叉验证
先来几句论文中经常用于表述交叉验证的句子: We follow previous experiment protocol and use accuracy under 10-fold cross-validation as the evaluation metric. 首先,要明确交叉验证是什么?有一点很明确,交叉验证需要将数据集分为训练集和验证集(或者称测试集),在训练集上对模型训练参数,在
机器学习--交叉验证
转自: 交叉验证(Cross validation),有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证是一种评估统计分析、机器学习算法对独立于训练数据的数据集的泛化能力(generalize), 交叉验证一般要尽量满足:
机器学习工具之交叉验证数据集自动划分train_test_split
机器学习工具之交叉验证数据集自动划分 1. 使用方式: from sklearn.model_selection import train_test_split x_train,x_test,y_train,y_test=train_test_split (train_data,train_lable,test_size=0.3,random_state=o,stratify=trai...
Python - 回归(线性回归、RFE、LASSO 和 岭回归+K折交叉验证)
1. 普通线性回归:通过输出模型的真实值和预测值的平均平方差尽可能小(即最小二乘估计法),但容易陷入过度拟合(即低偏差),后续回归方法会有带正则化法来缩减数据。2. 普通线性回归+RFE:RFE是recursive feature elimination回归特征消除,让回归特征消除过程中只保留no_features个最重要的特征,可以避免过度拟合,但RFE会舍弃一些变量,原没有下面几个方法给变量赋...
机器学习 - 如何交叉验证 PCA、聚类和矩阵分解模型
机器学习 - 如何交叉验证 PCA、聚类和矩阵分解模型 [原文 - How to cross-validate PCA, clustering, and matrix decomposition models] 矩阵分解模型的交叉验证技巧,以 PCA 和聚类为例;并基于 Python 给于说明. 1. 线性回归的交叉验证 交叉验证是现代数据分析中的一种基础范式,普遍用于有监督的...
机器学习 python 交叉验证实例
模型选择方法之交叉验证 交叉验证将训练集分为两部分:训练集、验证集。交叉验证的过程是: (1)训练集:用于训练模型; (2)验证集:在使用测试集得出模型误差之前,用验证测试模型的误差; (3)对于划分方式,可以按照一定比例划分成两份,可以划分成多份; (4)选择平均误差低的模型,最后用全部的原始训练集训练一次,可以得到较好的模型。这样得到的模型,既考虑了训练误差,也考虑了泛化误差。也充分提取了训练集信息。
机器学习中训练数据集,交叉验证数据集,测试数据集的作用
1. 简介在Andrew Ng的机器学习教程里,会将给定的数据集分为三部分:训练数据集(training set)、交叉验证数据集(cross validation set)、测试数据集(test set)。三者分别占总数据集的60%、20%、20%。 那么这些数据集分别是什么作用呢?
机器学习——sklearn中的交叉验证
转载自http://blog.csdn.net/jasonding1354/article/details/50562513。 内容概要¶ 训练集/测试集分割用于模型验证的缺点K折交叉验证是如何克服之前的不足交叉验证如何用于选择调节参数、选择模型、选择特征改善交叉验证1. 模型验证回顾¶ 进行模型验证的一个重要目的是要选出一个最合适的模型,对于监督学习而言,我们希望模型对于未知数据的泛化能力强,所以
机器学习——什么时候需要显式的划分出“验证集”
       所谓的显式的划分出“验证集”,其实就是显式的将数据集划分为“训练集”、“验证集”、“测试集”。但是假如要使用k折交叉验证来为模型进行超参数调优而言,是不需要显式的将数据集划分出“验证集”的。        当数据集的整体比较小时,常常需要使用k折交叉验证才能更加精确的评估一个模型的性能指标(因为k折交叉验证可以解决数据分布的敏感性问题),从而为模型选择比较优的超参数。使用k折交叉验...
【机器学习】交叉验证(cross-validation)
交叉验证(Cross validation),交叉验证用于防止模型过于复杂而引起的过拟合。有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证是一种评估统计分析、机器学习算法对独立于训练数据的数据集的泛化能力。
Python机器学习之交叉验证
import numpy as np import matplotlib.pyplot as plt import pandas as pd import seaborn as sns from sklearn.model_selection import train_test_split 1、 数据加载 # 加载数据集 fruits_df = pd.read_table('fruit_dat...
机器学习:交叉验证和模型选择与Python代码实现
前言:本篇博文主要介绍交叉验证(cross validation)和模型选择,首先介绍相关的基础概念和原理,然后通过Python代码实现交叉验证和模型评估以及选择。特别强调,其中大多理论知识来源于《统计学习方法_李航》和斯坦福课程翻译笔记。
Spark 2.0 机器学习 ML 库:机器学习工作流、交叉 - 验证方法(Scala 版 + Python 版 )
一、前言 本文为 Spark 机器学习的一个逻辑斯蒂回归案例,通过它,可以先大体地熟悉 Spark ML 机器学习的整个流程。 这对以后深入熟悉 Spark ML 局部的具体内容,有很大的帮助。 二、代码 下面通过机器学习,训练模型,使其能识别与 love 有关的英文句子(中文的话要先分词,可以借助 jieba 分词) .★. .★ .*    ★ ★      ...
【机器学习】交叉验证、正则化实例Python代码实现
前言 机器学习常用的数据集网址:数据集 运行环境:python3.6(这里我用的anaconda的jupyter notebook) 1. 对比不同模型的交叉验证的结果 数据集来源:红酒数据集 这份数据集包含来自3种不同起源的葡萄酒的共178条记录。13个属性是葡萄酒的13种化学成分。通过化学分析可以来推断葡萄酒的起源。值得一提的是所有属性变量都是连续变量。 from skle...
【机器学习基础概念】过拟合,交叉验证,VC维
过拟合 概念理解:为了使分类器能够对训练数据进行完全正确的分类,而把分类器构造得过度精细复杂,使得训练数据稍微有改动,分类器就会失效。简单点理解就是,能够正确甚至百分百分类训练数据,对于测试数据却不能得到很好的结果。 出现原因:出现这种现象的主要原因是训练数据中存在噪音或者训练数据太少 交叉验证 也称为循环估计,是将一个样本集,分割成两个子集,一个作为训练数据用,一
机器学习之模型选择(K折交叉验证,超参数的选择)
来源: https://www.cnblogs.com/jerrylead/archive/2011/03/27/1996799.html   对于解决同一个问题,如怎么选择模型去拟合线性回归中只有一个特征时房价预测问题,如可能有不同的模型去解决,如: 1、d = 1,h(θ) = θ0+θ1x 2、d = 2,h(θ) = θ0+θ1x+θ2x^2 3、d = 3,h(θ) = θ0...
【机器学习】交叉验证和K-折交叉验证cross-validation and k-fold cross-validation
http://www.anc.ed.ac.uk/rbf/intro/node16.html If data is not scarce then the set of available input-output measurements can be divided into two parts - one part for training and one part for testin
python机器学习交叉验证,留一验证小练习
导入模块from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier加载数据iris = load_iris() X = iris.data y = iris.target标准的2/3数据集训练,1/3数据集训练from sklearn.model_selection import tr...
机器学习为什么需要交叉验证?怎么使用k-fold cross validation(k-折叠交叉验证)
介绍这个非常重要的概念,希望在训练算法时能帮助各位。概念和思维解读叉验证的目的:在实际训练中,模型通常对训练数据好,但是对训练数据之外的数据拟合程度差。用于评价模型的泛化能力,从而进行模型选择。交叉验证的基本思想:把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set),首先用训练集对模型...
机器学习--交叉验证函数
一、交叉验证在建立分类模型时,交叉验证(Cross Validation)简称为CV,CV是用来验证分类器的性能。它的主体思想是将原始数据进行分组,一部分作为训练集,一部分作为验证集。利用训练集训练出模型,利用验证集来测试模型,以评估分类模型的性能。二、交叉验证的作用 验证分类器的性能 用于模型的选择 三、交叉验证常用的几种方法3.1 k折交叉验证 K-fold Cross Validation(
机器学习(西瓜书)第三章 3.4 交叉验证+留一法
代码连接:https://github.com/taijizuomantou/machine_learning_zhouzhihua 注意:交叉验证和留一法,都只是用来评估误差的。训练实际得到的模型是使用所有数据集的。ok 采用的是uci使用最多的iris数据集。特别注意,得到的参数结果是不收敛的。但测试的结果却是完全正确的。 这里有些混淆。在吴恩达课程中,不使用批处理的情况下,一般情况会越...
斯坦福大学机器学习——交叉验证(Cross Validation)
交叉验证是一种模型选择方法,其将样本的一部分用于训练,另一部分用于验证。因此不仅考虑了训练误差,同时也考虑了泛化误差。从这里可以看出机器学习、数据挖掘与传统统计学的一个重要差别:传统统计学更注重理论,追求理论的完整性和模型的精确性,在对样本建立某个特定模型后,用理论去对模型进行各种验证;而机器学习/数据挖掘则注重经验,如交叉验证,就是通过不同模型在同一样本上的误差表现好坏,来选择适合这一样本的模型,而不去纠结理论上是否严谨。
文章热词 机器学习 交叉验证调超参数 信用卡欺诈交叉验证 神经网络算法超参数交叉验证 机器学习学习
相关热词 c++ 关于unique的问题 bootstrap mac 有问题 编写一个关于圆形的c++ python中机器学习的算法 机器学习人工智能