博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习之Validation(验证,模型选择)
阅读量:6212 次
发布时间:2019-06-21

本文共 887 字,大约阅读时间需要 2 分钟。

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

这里写图片描述

这里写图片描述

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

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

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

这里写图片描述

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

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

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

这里写图片描述

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

这里写图片描述

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


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

  我们选出K个数据用来进行验证,这K个数据的误差记作Eval,称为验证误差,那么剩下的N-K个数据用来训练模型,记作Dtrain

这里写图片描述

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

K=N5

机器学习系列之

你可能感兴趣的文章
UIKit框架(10)自定义modal过渡效果
查看>>
Swift2.0(5)元组类型&数组类型&字典类型
查看>>
火焰图的生成
查看>>
excel积累
查看>>
linux系统运维常用命令详解二
查看>>
可执行jar包的MANIFEST.MF
查看>>
从企业信息化到信息化企业面临的挑战(2)
查看>>
LINUX 做一个自己的精简版LINUX ERIKXUE 薛忠权
查看>>
NNS域名系统之域名竞拍
查看>>
java9学习之常用工具增强<二>
查看>>
【R】数据导入读取read.table函数详解,如何读取不规则的数据(fill=T)
查看>>
setXfermode之使图片圆角化
查看>>
JAVA根据IP地址获取详细的地域信息
查看>>
Tomcat安装部署和安全加固优化以及反向代理应用
查看>>
在Windows server 2012环境下部署Exchange 2013先决条件
查看>>
常用软件整理
查看>>
Sql Server_2008安装及配置
查看>>
磁盘超过2T无法用fdisk分区的问题
查看>>
scala特点和java的异同点
查看>>
xshell5 xftp5 免费版下载
查看>>