交叉验证(Cross Validation)

交叉验证是一种统计学上的数据切分方法,用于评估模型性能。常见的交叉验证形式包括Hold-Out、Leave-p-out和k-fold。k-fold交叉验证是最常用的,通过随机将数据划分为k个相等大小的子集,进行k次训练和测试,以提高模型的泛化能力。模型选择通常涉及比较不同模型在交叉验证中的误差,选择误差最小的模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

交叉验证的定义

交叉验证(Cross Validation),有的时候也称作循环估计(Rotation Estimation),是一种统计学上将数据样本切割成较小子集的实用方法,该理论是由Seymour Geisser提出的。

在模式识别(Pattern Recognition)和机器学习(Machine Learning)的相关研究中,经常会将整个数据集合分成两个部分,分别是训练集合和测试集合。假设X是集合全体, AX 是全集X的非空真子集,那么非空集合 XA 则是集合A在全集 X 中的补集。于是可以先在A上面做训练和分析,而集合 XA 则用来做测试和验证。一开始的集合A被称作训练集,而它的补集 XA 被称作验证集或者测试集。这里有一个重要的观点就是:只有训练集才可以使用在模型的训练之中,而测试集必须在模型训练完成之后才被用来评估模型的误差。

HoldOut检验(Hold-Out Method)

这个方法是将原始的数据集合X随机分成两个集合 A XA,其中A作为训练集, XA 作为测试集。先使用训练集训练模型,然后利用测试集验证模型的效果,记录最后的分类准确率作为Hold-Out下该模型的性能指标。比方说,处理时间序列模型是否准确的时候,把整个数据集合分成前后两部分,前部分占比70%,后部分占比30%。前部分来进行时间序列模型的训练,后部分用来测试改时间序列的准确性。其准确性可以用MAE,MAPE之类的统计指标来衡量。综上所述,该方法的好处就是处理起来简单,只需要把原始数据分成两个部分即可。但是从严格意义上来说,Hold-Out检验并不算是交叉检验(Cross Validation),因为该方法没有达到交叉检验的思想,而且最后验证准确性的高低和原始数组的分类有很大的关系,所以该方法得到的结果在某些场景中并不具备特别大的说服力。

在Hold-Out检验不够有说服力的情形下,有人提出了交叉验证这一个重要思想。

交叉检验的常见形式

假设有一个未知模型有一个或者多个未知的参数,并且有一个训练集。操作的过程就是对该模型的参数进行调整,使得该模型能够最大的反映训练集的特征。如果模型因为训练集过小或者参数不合适而产生过度拟合的情况,测试集的测试效果就可以得到验证。交叉验证是一种能够预测模型拟合性能的有效方法。

彻底的交叉验证(Exhaustive Cross Validation)

彻底的交叉验证方法指的是遍历全集X的所有非空真子集 A 。换句话说也就是把A当作训练集, XA 是测试集。如果X中有 n 个元素,那么非空真子集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值