交叉验证法(cross-validaiton)的目的到底是什么?对于5折交叉验证,应该选择哪个模型作为最终模型呢?

疑问:对于交叉验证法,如5折交叉验证,那么将会生成5个模型,到底应该选择哪个模型作为最终的模型呢?

解答:通过阅读博文,发现交叉验证法是用来评估模型性能的,并不参与最后预测模型的生成。

知识点总结:

一、交叉验证法是用于小数据集的。大数据集可直接使用train-validation-test。

在研究对比不同算法的泛化性能时,使用测试集来评估,而把训练数据划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。

使用train-validation-test的过程:

  1. 将数据集划分为training set,validation set,testing set;
  2. 对不同的3个算法svm,random forest,logistic regression,分别执行以下三步,得到其最优模型。
  • 对于一个算法,如svm,针对不同的核参数,在training set上训练模型;
  • 在validation set上评估不同核参数对应模型的结果,选择出最优的核参数;
  • 对该最优核参数,重新使用training set+validation set进行训练,得到最终的模型;

     3. 在testing set上对这三个不同算法的性能进行评估,用来估计模型在实际使用时的泛化能力。

二、交叉验证法是用于选择超参数的。如svm中核函数的参数选择,tuning parameter时,使用交叉验证法的平均评估结果来验证哪个参数最好。 

机器学习训练时主要需要学两样东西。

一样是模型weights,比如coefficients and biases.

另外一样是模型的超参数,比如学习率,regularisation strength什么的。

cross validation 主要是为了找到最好的超参数。然后用最好的超参数训练模型,得到最终的模型weights.

作者:Softmax
链接:https://www.zhihu.com/question/39259296/answer/460169275
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用交叉验证进行tuning parameter的过程总结:

  1. 将全部数据集划分为training set和 testing set;
  2. 对不同算法,进行tuning parameter:
  • 对不同超参数,使用training set,进行5折交叉验证,得到评估结果;
  • 选择评估结果最好的那个超参数作为最优超参数;
  • 对最优超参数,重新使用training set训练模型;

     3.使用testing set评估不同算法的泛化能力。

 

 

 

三、若非要纠结使用交叉验证的哪个模型比较好,一般选择使用误差最小的那个模型作为最终模型。(不常用)(这点不确定理解的是不是正确)

 

声明:

本博文通过参考以下博文而得出:

https://www.zhihu.com/question/39259296

https://www.cnblogs.com/WayneZeng/p/7802759.html

 

 

  • 16
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值