前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习之Validation(验证,模型选择)

机器学习之Validation(验证,模型选择)

作者头像
大黄大黄大黄
发布2018-09-14 17:37:52
6950
发布2018-09-14 17:37:52
举报

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/54924160

对于机器学习的模型选择来说,即使只是对于二元分类,我们已经学习了很多方法,比如PLA,LR等;很多学习算法都是可迭代的,需要决定迭代次数;你可能还需要决定每一次迭代走多大,例如梯度下降;或者有很多的转换可以选择,例如线性、二次等;同时规则化又有很多的选择L1,L2;再来规则化到底要加多强的λ\lambda。况且这些选择是组合起来的,某种程度上来说是组合爆炸的,那么我们怎么做出正确的选择?

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

 那么对于以上两个模型,你会选择哪一个模型呢?也许你会说,可以根据自己视觉上的判断来选择模型,但是我们必须注意到,当选择的模型不是二元的,而是多元的时候,我们就不能通过视觉上的判断来选择了。还有一点,如果通过视觉上的判断来选择,我们就必须考虑到自己脑袋里那个强大的VC维模型,那么我们就不见得有多大的好处。

 如果以上方法不行的话 ,那我们是不是可以选一个EinE_{in}最小的方法呢?

我们可以把待选择的模型跑在我们的资料上,那么我们就可以通过选择EinE_{in}最小的模型来完成机器学习。

这里写图片描述
这里写图片描述

那么,这么做有什么问题呢?

首先,我们可以想象,在这样的设定之下,我们肯定会选择复杂度很高的模型,以减小EinE_{in},就会可能造成overfitting(过拟合)。

其次,这样选择模型,相当于在1班中选择一个最好的学生s1,在2班中选择一个最好的学生s2,然后再选择出s1和s2中相对较好的学生。这无疑增加了模型复杂度。

这里写图片描述
这里写图片描述

那我们可不可以通过选一个EtestE_{test}最小的方法呢?通过一个测试集来判断EtestE_{test}的大小,从而选出较好的模型?

这里写图片描述
这里写图片描述

看起来这是一个很好的方法。但是问题是我们能找到测试资料吗?这就好像测试考试,在正式考试之前,你会得到考卷吗?


 我们今天是要找到一个中间方式,就是把一部分资料先拿出来当作测试资料,以保证测试资料不被污染,当要进行验证时,再把这部分资料拿出来进行测试!

我们选出K个数据用来进行验证,这K个数据的误差记作EvalE_{val},称为验证误差,那么剩下的N-K个数据用来训练模型,记作DtrainD_{train};

这里写图片描述
这里写图片描述

一般来说,K的值大约为整个数据集数量的五分之一。

K=N5

K=\frac{N}{5}


机器学习系列之机器学习之Logistic回归(逻辑蒂斯回归)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年02月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档