首页 > 其他 > 详细

交叉验证

时间:2014-04-12 08:11:42      阅读:428      评论:0      收藏:0      [点我收藏+]

之前的blog讨论过经验风险与结构风险之间相互限制的关系,如下图:

bubuko.com,布布扣


http://blog.csdn.net/ice110956/article/details/14002791

我们在相同VC维的模型中,选择经验风险最小的模型,能够得到与真实风险误差有一定上限的结果,即这种策略的结果可控,虽然不是最优的。

那么,在不同的VC维模型中,比如遇到一个分类问题,是使用SVM,贝叶斯,还是决策树?这时候如何选择呢?一个常见的方法就是交叉验证。

 

交叉验证就是把训练样本的一部分独立出来作为测试样本,用这时候的测试误差来估计真实数据分布的结构误差。如下是几种常见的交叉验证方法。

 

简单交叉验证

1.      随机选取一部分样本为训练(通常为70%),剩下(30%)做测试,然后选择测试误差最小的模型。

2.      取整体样本,用第一步得到的模型做再训练,得到最终模型。不过,当模型或数据非常不稳定的时候,再训练的结果有时候也会不好。

 

上述简单交叉验证的缺点就是,浪费了部分数据(30%)。如果数据量较大,那没有很大影响,但是在数据很小时影响较大。

 

k-fold交叉验证

1.把样本分为k个相同大小的子集,用其中一个i测试,剩下k-1个训练。

2.改变测试集i,重复上述过程

3.把k次测试得到的结果取平均,作为这个模型的结构误差估计,然后选取最小结构误差的模型。

 

通常,k=10会取得较好的结果。

 

leave-one-out 交叉验证

还有一种情况,数据量特别小,上述取90%训练还是有很大影响。那么极端的,我们取k=m,即每个样本一个子集,做交叉验证。

 

教研室常用的方法

教研室的大体方法就是10-fold交叉验证,不过不是把集合划分为10份,而是每次随机选择90%的样本做训练,然后随机10次,取平均结果。

 

交叉验证,布布扣,bubuko.com

交叉验证

原文:http://blog.csdn.net/ice110956/article/details/23477979

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!