K折交叉验证

K折交叉验证是一种评估模型性能的方法,它将数据集分成k个子集,轮流作为测试集,其余作为训练集。scikit-learn中的cross_val_score和cross_val_predict函数分别用于计算平均性能和获取每个样本的预测结果。平均性能可以反映模型的泛化能力,但预测结果不能直接作为泛化性能的依据。K折过程可用于模型调优。
摘要由CSDN通过智能技术生成

第一步,不重复抽样将原始数据随机分为 k 份。

第二步,每一次挑选其中 1 份作为测试集,剩余 k-1 份作为训练集用于模型训练。

第三步,重复第二步 k 次,这样每个子集都有一次机会作为测试集,其余机会作为训练集。 在每个训练集上训练后得到一个模型, 用这个模型在相应的测试集上测试,计算并保存模型的评估指标,

第四步,计算 k 组测试结果的平均值作为模型精度的估计,并作为当前 k 折交叉验证下模型的性能指标。 

也可以专门留出测试集(不参与K折),而K折过程用于模型调优

../_images/grid_search_cross_validation.png

 

scikit-learn中计算交叉验证的函数:

cross_val_score:得到K折验证中每一折的得分,K个得分取平均值就是模型的平均性能

cross_val_predict:得到经过K折交叉验证计算得到的每个训练验证的输出预测

在最新的版本sklearn 0.21中cross_val_score与cross_validate被统一,cross_val_score仅仅为调用cross_validate返回字典的结果。

cross_val_score计算得到的平均性能可以作为模型的泛化性能参考

cross_val_predict计算得到的样本预测输出不能作为模型的泛化性能参考

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值