交叉验证

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



http://blog.youkuaiyun.com/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次,取平均结果。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值