K折交叉验证

很多回答只讲了交叉验证怎么做,但没讲怎么用,很容易误导新人,使人产生“使用了K折验证后,该选哪一个模型?”的疑惑。

在此总结一下,希望后来人不要再有这种误解。

交叉验证基本目的:

用所有的数据来评估当前超参数下模型的好坏。假设有M种超参数,对应M种模型,既我们要对这M种模型进行评估,选最好的M*。

交叉验证的流程:

1:对M种模型,分别计算验证集上误差a_m

2:a_m计算如下(选一种就行):

简单交叉验证:N个数据,0.7的训练集,0.3验证集,计算验证集上误差。打乱数据,重复此过程M次,计算平均误差a_m。
留一验证:N个数据,验证时产生N个模型,我们要计算N个模型的平均误差a_m。
K折验证:N个数据,分成K份,验证时产生K个模型,计算K个模型的平均误差a_m。
(留一验证和K折验证均能达到交叉验证的基本目的。)
当然你也可以不用交叉验证,直接把数据分为测试集和验证集,使用验证集来算误差。不过问题很明显,你的验证集无法使用所有的数据来评估模型的好坏。
3:选a_m最小的的模型作为我们最终要使用的模型M*。

4:使用所有数据,在M*上再训练一遍,获得你最终训好的模型。

这时候再回头看,文章开头的提问是不就迎刃而解了?

K折验证时产生的中间模型,我们哪一个都不选,我们只关注平均误差最小的M*

即交叉验证只是用来评估模型M的一种方法,帮我们选出最好的M*。

至于这种问题为什么会产生,与现有一些人直接把交叉验证的中间模型用来做ensemble产生更强的模型的这重操作有关。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值