前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >机器学习中的交叉验证思想

机器学习中的交叉验证思想

作者头像
mythsman
发布于 2022-11-14 08:04:57
发布于 2022-11-14 08:04:57
8640
举报

简述

在使用训练集对参数进行训练的时候,经常会发现人们通常会将一整个训练集分为三个部分(比如mnist手写训练集)。一般分为:训练集(train_set)评估集(valid_set)测试集(test_set)这三个部分。这其实是为了保证训练效果而特意设置的。其中测试集很好理解,其实就是完全不参与训练的数据,仅仅用来观测测试效果的数据。而训练集评估集则牵涉到下面的知识了。

因为在实际的训练中,训练的结果对于训练集的拟合程度通常还是挺好的(初试条件敏感),但是对于训练集之外的数据的拟合程度通常就不那么令人满意了。因此我们通常并不会把所有的数据集都拿来训练,而是分出一部分来(这一部分不参加训练)对训练集生成的参数进行测试,相对客观的判断这些参数对训练集之外的数据的符合程度。这种思想就称为交叉验证(Cross Validation)。

通常我们使用的交叉验证方法有下面几种:

简单交叉验证(simple cross validation)

简单交叉验证当然很简单了,就是把整个训练集随机分为两部分(通常是70%的训练集,30%的评估集)。

1、首先我们用训练集建立模型,这时候我们需要尝试多种的参数来得到一些不同的模型;

2、对于每一个模型,调用评估集来进行测试,计算出训练误差(通常是以类似损失函数的形式);

3、取训练误差最小的那个模型作为最后的结果;

这个方法当然会存在一些训练数据的浪费,毕竟有大量的数据没有参与真正的训练而是仅仅作为评估。所以这个方法只能在数据非常易得的情况下使用,如果数据比较珍贵,显然这种方法就不适用了。

有时候这个方法好像也被称为HoldOut验证(Hold-Out Method)。其实这也不算是交叉验证了,因为他的训练集并没有交叉。

通常情况下我们是直接选取前70%为训练集,但是如果训练数据是按照一定规律排放的,那么选取数据的时候就要先打乱顺序,或者按照一定的随机方法选取数据。否则训练集就不一定具有一般性了。

K-折交叉验证(S-fold Cross Validation)

这个据说是最常用的验证方法了,步骤如下:

1、将数据集均分为K份

2、从K份中取一份作为评估集,另外K-1份作为训练集,生成K个模型以及这K个模型对于评估集的训练误差;

3、取训练误差最小的那个模型作为最后的结果;

经大量实验验证,据说我们取K=10的时候效果最好。

这个方法一方面保证了数据充分被使用训练了,避免了数据的浪费;另一方面也互相进行了验证,达到了交叉验证的效果,不过计算代价还是有点高。

留p交叉验证(Leave-p-out Cross Validation)

从名字大概就可以看出来了,所谓留p,就是每一次训练都会留下p个数据作为评估集,剩下的n-p个数据作为训练集,分别进行建模测试,取出效果最好的模型。这里我们会发现这p个数据可以有C_n^p组可能,所以计算的复杂度还是挺高的。

当然,有时候我们会取p=1,这导致了每一个数据都会独立作为测试集。这种方法又被叫做留一交叉验证(Leave-One-Out Cross Validation),当数据极为匮乏的时候才会使用。

事实上,交叉验证的方法不仅能够提高数据的利用率,更重要的是他也能够在一定程度上解决过拟合(Overfitting)问题,因为过拟合只能很好的拟合训练集中的数据而并不能拟合评估集中的数据。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习之交叉验证
交叉验证(Cross Validation)是在机器学习建立模型和验证模型参数时常用的方法。顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集。用训练集来训练模型,测试集来评估模型的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的样本,在下次可能成为测试集中的样本,也就是所谓的交叉。
小一
2019/08/14
8830
机器学习之交叉验证
机器学习,过拟合与欠拟合,正则化与交叉验证
不同的机器学习方法会给出不同的模型。当损失函数给定时,基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准。
zhangjiqun
2024/12/14
2640
机器学习,过拟合与欠拟合,正则化与交叉验证
【机器学习】交叉验证 Cross-validation
以下简称交叉验证(Cross Validation)为CV.CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set),首先用训练集对分类器进行训练,在利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标.常见CV的方法如下:
Twcat_tree
2023/11/22
5410
[机器学习必知必会]交叉验证
当我们根据数据训练出一个机器学习模型时,我们希望它在新的数据上也保持较高的准备率,这就需要我们对学习到的不同模型有一个模型评估准则。
TOMOCAT
2020/06/09
1.5K0
[机器学习必知必会]交叉验证
交叉验证,K折交叉验证的偏差和方差分析
交叉验证是一种通过估计模型的泛化误差,从而进行模型选择的方法。没有任何假定前提,具有应用的普遍性,操作简便, 是一种行之有效的模型选择方法。
狼啸风云
2019/06/13
4K0
交叉验证的3种方法
将数据集进行划分是非常必要的,如果所有的数据都作为训练集的话,不可避免的会遇到过拟合的问题,所以我们还需要另外的数据对训练集得到的模型的结果进行评估和验证。
生信修炼手册
2021/07/06
1.5K0
交叉验证的3种方法
机器学习入门 8-6 验证数据集与交叉验证
前几个小节通过引入过拟合和欠拟合的概念,让大家理解使用train_test_split方法划分出测试集的意义。
触摸壹缕阳光
2019/12/30
1.4K0
交叉验证_验证的三种方法
它的基本思想就是将原始数据(dataset)进行分组,一部分做为训练集来训练模型,另一部分做为测试集来评价模型。
全栈程序员站长
2022/09/20
2.8K0
交叉验证_验证的三种方法
机器学习(十二)交叉验证实例
假设有个未知模型具有一个或多个待定的参数,且有一个数据集能够反映该模型的特征属性(训练集)。
致Great
2018/11/07
2.6K0
「交叉验证」到底如何选择K值?
交叉验证(cross validation)一般被用于评估一个机器学习模型的表现。更多的情况下,我们也用交叉验证来进行模型选择(model selection)。往远了说,交叉验证可以用于评估任何过程,但本文仅讨论机器学习评估这个特定领域。
Ai学习的老章
2019/04/08
3.4K0
「交叉验证」到底如何选择K值?
图解机器学习中的 12 种交叉验证技术
今天我给大家盘点下机器学习中所使用的交叉验证器都有哪些,用最直观的图解方式来帮助大家理解他们是如何工作的。
数据STUDIO
2021/09/09
2.9K0
为什么要用交叉验证
本文结构: 什么是交叉验证法? 为什么用交叉验证法? 主要有哪些方法?优缺点? 各方法应用举例? ---- 什么是交叉验证法? 它的基本思想就是将原始数据(dataset)进行分组,一部分做为训练集来训练模型,另一部分做为测试集来评价模型。 ---- 为什么用交叉验证法? 交叉验证用于评估模型的预测性能,尤其是训练好的模型在新数据上的表现,可以在一定程度上减小过拟合。 还可以从有限的数据中获取尽可能多的有效信息。 ---- 主要有哪些方法? 1. 留出法 (holdout cross validation)
杨熹
2018/04/03
2.3K0
为什么要用交叉验证
机器学习中的交叉验证
总第100篇 本篇讲讲机器学习中的交叉验证问题,并利用sklearn实现。 前言 在说交叉验证以前,我们先想一下我们在搭建模型时的关于数据切分的常规做法[直接利用train_test_split把所有的数据集分成两部分:train_data和test_data,先在train_data上进行训练,然后再在test_data上进行测试评估模型效果的好坏]。 因为我们训练模型时,不是直接把数丢进去就好了,而是需要对模型的不断进行调整(比如参数),使模型在测试集上的表现足够好,但是即使模型在测试集上效果好,不
张俊红
2018/04/11
2K0
机器学习中的交叉验证
kfold交叉验证_SPSS交叉验证法
在机器学习建模过程中,通行的做法是将数据分为训练集和测试集。测试集是与训练独立的数据,完全不参与训练,用于最终模型的评估。在训练过程中,经常会出现过拟合的问题,就是模型可以很好的匹配训练数据,却不能很好在预测训练集外的数据。如果此时就使用测试数据来调整模型参数,就相当于在训练时已知部分测试数据的信息,会影响最终评估结果的准确性。通常的做法是在训练数据再中分出一部分做为验证(Validation)数据,用来评估模型的训练效果。
全栈程序员站长
2022/11/05
1.5K0
kfold交叉验证_SPSS交叉验证法
干货 | 三分钟重新学习交叉验证
AI 科技评论按:文章的作者 Georgios Drakos 是一名数据科学家,通过本文作者向我们介绍了交叉验证的基本概念、作用以及如何使用。AI 科技评论根据原文进行了编译。
AI科技评论
2018/09/21
1K0
干货 | 三分钟重新学习交叉验证
模型选择之交叉验证
交叉验证是在机器学习建立模型和验证模型参数时常用的办法,一般被用于评估一个机器学习模型的表现。更多的情况下,我们也用交叉验证来进行模型选择(model selection)。
Coggle数据科学
2019/09/12
1.7K0
模型选择之交叉验证
用交叉验证改善模型的预测表现-着重k重交叉验证
机器学习技术在应用之前使用“训练+检验”的模式(通常被称作”交叉验证“)。 预测模型为何无法保持稳定? 让我们通过以下几幅图来理解这个问题: 此处我们试图找到尺寸(size)和价格(price)的关系
机器学习AI算法工程
2018/03/14
1.6K0
用交叉验证改善模型的预测表现-着重k重交叉验证
《揭秘机器学习中的交叉验证:模型评估的基石》
在机器学习的复杂领域中,构建一个精准有效的模型是众多从业者的核心目标。然而,模型的性能评估绝非易事,它关乎模型能否在实际应用中发挥作用,而交叉验证则是这一过程中的关键技术,是保障模型可靠性与泛化能力的重要手段。
程序员阿伟
2025/02/28
2830
一份机器学习模型离线评估方法的详细手册
读完分类与回归算法的评估指标以及排序算法的评估指标之后,你已经知道了机器学习中分类、回归以及排序算法相关的评估指标。在这篇给大家介绍一些机器学习中离线评估模型性能的一些方法。
abs_zero
2018/12/06
1.4K0
机器学习笔记-总结
机器学习笔记是我这学期在上”统计学习”这门课时学习到的内容的一个总结.因为过往很多学过的知识,现在大多都已经忘掉了,而统计机器学习的内容则很重要,我可不能再上过就忘掉,所以在复习的时候把这些内容都记录下来,以便以后查阅.
王云峰
2019/12/25
4790
机器学习笔记-总结
相关推荐
机器学习之交叉验证
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档