机器学习:验证数据集与交叉验证

# 问题:如果将所有的数据集都作为训练数据集,则对于训练出的模型是否发生了过拟合会不自知,因为过拟合情况下,模型在训练数据集上的误差非常的小,使人觉得模型效果很好,但实际上可能泛化能力不足;

# 方案:将数据集分割为训练数据集和测试数据集,通过测试数据集判断模型的好坏——如果通过学习曲线发现,模型在训练数据集上效果较好,在测试数据集上效果不好,模型出现过拟合,需要调整参数来重新得到模型,然后再次进行测试;以此类推循环此过程,最终得到最佳模型。

  # 最佳模型:也就是在测试数据集上表现的比较好的模型,因为这种模型的泛化能力强,放在生成环境中面对未知的环境时有更好的表现。

  # 调整的参数通常就是超参数:kNN 中的 k 和 P 、多项式回归中的 degree 等;

# 方案缺陷:此方案得到的最佳模型,有可能会过拟合了测试数据集;

  # 解释:虽然使用训练数据获得模型,但每次通过测试数据集验证模型的好坏,一旦发现模型不好就重新调整参数再次训练新的模型,这个过程一定程度上是模型在围绕着测试数据集进行刷选,也就是说,我们在想办法找到一组参数,这组参数使得我们在训练数据集上获得的模型在测试数据集上效果最好,但是由于测试数据集是已知的,我们相当于在针对这组测试数据集进行调参,那么也有可能出现过拟合的现象,也就是说我们得到的模型针对这组测试数据集过拟合了;

# 解决方案的缺陷:将数据集分割为 3 部分——训练数据集、验证数据集、测试数据集;

  # 训练数据集:训练模型;

  # 验证数据集:验证模型的效果,如果模型的效果不好,则重新调整参数再次训练新的模型,知道找到了一组参数,使得模型针对验证数据集来说已经达到最优了;(调整超参数使用的数据集)

  # 测试数据集:将此数据集传入由验证数据集得到的最佳模型,得到模型最终的性能;(作为衡量最终模型性能的数据集)

  # 训练数据集和验证数据集参与了模型的创建:训练数据集用来训练,验证数据集用来评判,一旦评判不好则重新训练,这两种形式都叫参与了模型的创建;

  # 测试数据集不参与模型的创建,其相对模型是完全不可知的,相当于是我们在模拟真正的真实环境中我们的模型完全不知道的数据;

# 分割成 3 部分数据的方案的缺陷:分割方式是随机的;

  # 解释:由于验证数据集是从原始数据集中随机分割出来的,模型有可能过拟合验证数据集,但是只有一份验证数据集,一旦验证数据集中有极端的数据就可能导致模型相应的不准确;

# 解决分割成 3 部分数据的方案的缺陷的方案:交叉验证(Cross Validation);

  # 交叉验证相对(数据分割)是比较正规和标准的在调整模型参数时使用的查看模型性能的方式;

  # 交叉验证:

原文地址:https://www.cnblogs.com/volcao/p/9291831.html

时间: 2024-10-02 18:14:30

机器学习:验证数据集与交叉验证的相关文章

机器学习之正则化与交叉验证

时间:2014.07.01 地点:基地 -------------------------------------------------------------------------------- 零.简述 今天学习两种模型选择方法,一种是正则化方法,还一种是交叉验证. -------------------------------------------------------------------------------- 一.正则化(regularization) 正则化(regul

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

在上一篇关于Python中的线性回归的文章之后,我想再写一篇关于训练测试分割和交叉验证的文章.在数据科学和数据分析领域中,这两个概念经常被用作防止或最小化过度拟合的工具.我会解释当使用统计模型时,通常将模型拟合在训练集上,以便对未被训练的数据进行预测. 在统计学和机器学习领域中,我们通常把数据分成两个子集:训练数据和测试数据,并且把模型拟合到训练数据上,以便对测试数据进行预测.当做到这一点时,可能会发生两种情况:模型的过度拟合或欠拟合.我们不希望出现这两种情况,因为这会影响模型的可预测性.我们有

用交叉验证改善模型的预测表现

预测模型为何无法保持稳定? 让我们通过以下几幅图来理解这个问题: 此处我们试图找到尺寸(size)和价格(price)的关系.三个模型各自做了如下工作: 第一个模型使用了线性等式.对于训练用的数据点,此模型有很大误差.这样的模型在初期排行榜和最终排行榜都会表现不好.这是"拟合不足"("Under fitting")的一个例子.此模型不足以发掘数据背后的趋势. 第二个模型发现了价格和尺寸的正确关系,此模型误差低/概括程度高. 第三个模型对于训练数据几乎是零误差.这是因

使用sklearn进行交叉验证

交叉验证之前的知识:我们如何评估一个模型  当我们想要测试我们的模型效果怎么样的时候,最好的方法是在实际的样本当中进行测试,这样可以测试出模型的泛化误差,但是实际的样本是没有标签的,所以这是一个悖论,我们无法知道样本的泛化误差. 假如我们在我们训练模型的数据上面直接进行测试的话,结果会很好,会出现过拟合的方式,所以这样来进行模型评估也是不行的. 所以,测试我们模型的方法就需要把我们已有的数据分为两部分,一部分用进行模型的训练,我们把它叫做训练集,另外一部分专门用来训练,我们把它叫做测试集. 在p

交叉验证与训练集、验证集、测试集

一.前言 训练集.验证集和测试集这三个名词在机器学习领域极其常见,但很多人并不是特别清楚,尤其是后两个经常被人混用. 在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train set),验证集(validation set),测试集(test set). 二.训练集.验证集.测试集 如果给定的样本数据充足,我们通常使用均匀随机抽样的方式将数据集划分成3个部分——训练集.验证集和测试集,这三个集合不能有交集,常见的比例是8:1:1.需要注意的是,通常都会给定训练集

交叉验证(Cross Validation)原理小结

交叉验证是在机器学习建立模型和验证模型参数时常用的办法.交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏.在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓"交叉". 那么什么时候才需要交叉验证呢?交叉验证用在数据不是很充足的时候.比如在我日常项目里面,对于普通适中问题,如果数据样本量小于一万条,我们就会采用交叉验证来训练优化选择模型.如果样本

交叉验证概述

交叉验证 交叉验证(Cross-validation)主要用于建模应用中,例如PCR .PLS 回归建模中.在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和. 中文名 交叉验证 外文名 Cross validation 实    质 建模应用中 特    点 PCR .PLS 回归建模中 目录 1 概念 2 基本思想 3 目的 4 常见的交叉验证形式 ? Holdout 验证 ? K-fold cross-valid

交叉验证

交叉验证是在机器学习建立模型和验证模型参数时常用的办法.交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏.在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓"交叉". 那么什么时候才需要交叉验证呢?交叉验证用在数据不是很充足的时候.比如在我日常项目里面,对于普通适中问题,如果数据样本量小于一万条,我们就会采用交叉验证来训练优化选择模型.如果样本

交叉验证(Cross Validation)

假设我们需要从某些候选模型中选择最适合某个学习问题的模型,我们该如何选择?以多元回归模型为例:,应该如何确定k的大小,使得该模型对解决相应的分类问题最为有效?如何在偏倚(bias)和方差(variance)之间寻求最佳的平衡点?更进一步,我们同样需要知道如何在加权回归模型中选择适当的波长参数,或者在基于范式的SVM模型中选择适当的参数C? 我们假设模型集合为有限集,我们的目的就是从这d个模型中,选择最有效的模型. 假设样本集为S,根据经验风险最小化原则(ERM),可能会使用这样的算法: 1.在S