机器学习—交叉验证

交叉验证是一种在数据量有限时评估模型性能的重要方法,包括k折交叉验证、留出法和留一法。k折交叉验证通过多次划分训练集和测试集,减少过拟合风险,提供更稳定的模型评估;留出法将数据简单划分为训练集和测试集;留一法在数据量极小时适用,每次只保留一个样本作为测试集,其余作为训练集。

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

1.交叉验证简介

交叉验证(Cross Validation) 是在机器学习建立模型和验证模型参数时常用的方法。
顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和
测试集。用训练集来训练模型,测试集来评估模型的好坏。在此基础上可以得到多组
不同的训练集和测试集,某次训练集中的样本,在下次可能成为测试集中的样本,
也就是所谓的交叉。

2. 为什么用交叉验证?
  • 交叉验证用在数据量不是很充足的情况(比如数据量小于一万条),能够从有限的数据中获取尽可能多的有效信息。
  • 交叉验证用于评估模型的预测性能,尤其是训练好的模型在新数据上的表现,能够一定程度上减小过拟合。
3.交叉验证的方法
K-Fold Cross-validation k折交叉验证

简言之,就是进行多次train_test_split划分。
每次划分时,在不同的数据集上进行训练、测试评估,从而得出一个评价结果。
如果是5折交叉验证,意思就是在原始数据集上,进行5次划分,每次划分进行一次训练、评估,最后得到5次划分后的评估结果,一般在这几次评估结果上取平均得到最后的评分。k-fold cross-validation ,其中,k一般取5或10。

k折交叉验证 (k-fold Cross Validation) 过程如下所示:
1.不重复抽样将原始数据随机分成k份。
2.每次挑选其中1份作为测试集,剩余k-1份作为训练集用于训练模型。
3.重复第2步k次,在每个训练集上训练后得到一个模型。用这个模型在相应的测试集上测试,计算并保存模型的评估指标。
4.计算k组测试结果的平均值作为模型准确度的估计,并作为当前k折交叉验证下模型的性能指标。

from sklearn import datasets
from sklearn import model_selection

#引入sklearn库中手写数字的数据集
digits = datasets.load_digits
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值