博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习基石HOW BETTER部分(3)
阅读量:4966 次
发布时间:2019-06-12

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

机器学习基石HOW BETTER部分(3)


标签:机器学习基石

第十五章

(crossly) reserve validation data to simulate testing procedure for model selection

模型选择问题

1

做二元分类,可以有的选择真的好多啊。每一种的选择就多,最后实现,还是选择的组合。

2

把模型选择问题一般化一下,就是如下的定义:有M个模型,每个模型有其对应的Hypothesis set以及学习算法A,希望选出某一个模型得到的g,它的Eout(g)是最小的。但是Eout不知道,无法以其作为标准。

根据Ein(g)最小来选择模型也是行不通的。一方面容易造成overfitting;另一方面,假设有两个模型PK:算法A1在H1上让Ein最小;算法A2在H2上让Ein最小。最后选出来的g的效果是在H1∪H2上让EEin最小,也就说假设空间变成了H1+H2,额外增加了model complexity,容易造成bad generalization。

如果能找到一些测试数据,来看看哪一个模型的表现更好就选择哪个。如果用这样的方式,可以得到Hoeffding的理论保证如下图。看起来很棒,可是问题是我们找不到测试数据,测试数据就像考卷,不可能说考试之前就发下来的。

3

将这两者结合一下:把训练数据留一部分下来作为测试数据,用其他的训练数据来训练模型,然后用测试数据来测试模型的表现好坏。这是合理的作弊,这样就可以有测试资料了(测试资料一定要留着,不能收到污染。也就是说,不能参与任何选出模型的工作。)

4

验证(Validation)

5

原来的训练数据分割出一部分作为测试数据,也被叫做validation set。
6
同样,也会有Hoeffding不等式的保证。¥E_{test}E_{in}$.

7

为了和原来的Eout作比较,我们知道更多的训练数据一般来说会有更好的Eout。所以很大程度上来说也就有以上的保证。

那Validation Set的大小K应该如何选择?选择的K应该尽可能地让下面这三个Error约等式成立。

8
通常情况下,K取N/5。

Leave-One-Out Cross Validation

k要足够小,让Eout(g)Eout(g)很接近。又要很大,让Eout(g)Eval(g)很接近。

考虑一个极端的情形,取非常小的K = 1。k足够小,让Eout(g)Eout(g)很接近。但是,这个时候,Eout(g)Eval(g)就很不接近了。

下面的en表示取第n笔数据作为validation data,所得到的Eval(g)en到底能不能告诉我们Eout(g)有多好呢?一个en当然不行,那把每笔数据都作为一次validation data然后平均起来,选择平均Error最小的作为最后的g,这样的方式叫做cross validation。

8
Leave-one-out Cross Validation看起来很厉害,那问题是Leave-one-out Cross Validation能不能告诉我们最在乎的事情Eout(g)有多好。
假设有一个算法和1000笔数据拿来做Leave-one-out Cross Validation,然后对各式各样的1000笔数据来做取一个平均。等一下要证明跟Eout(N1)的平均值是可以连接的。因为Eout(g)Eout(g)几乎是一样的,前者是1000笔数据做出来的,后者是999笔数据做出来的。

所以,我们得到了一个几乎完全没有偏见的针对Eout(g)的衡量方式。也就是说,Leave-one-out Cross Validation在选择模型上会比Ein来的更有效。

V-fold Cross Validation

1000笔数据,你需要有1000遍,把999个数据放进去算,后面还要做平均。很明显,Leave-One-Out Cross Validation大大增加了计算的复杂度,实际应用上上可能不太行。

另一方面,对于二元分类来说,分类结果在0与1之间跳动,Leave-One-Out求一个平均值。对这个平均值来说,这些0与1的跳动是很大的,希望用平均的方式把这些很大的跳动消掉,其实还是不太容易。

为了降低计算复杂度,将训练资料分为V份,取其中V-1做训练,另外1份做validation。这种方式通常叫做V-fold Cross Validation。实际上,就是把1000份资料分成100份。

实际上V通常取5或者10。

Traning就像初赛,各个模型都从Hypothesis Set中选出最合适的h;Validation就像复赛,从多种模型的scheme中选出一个最优的。这两步都是在进行模型选择,之后的testing methods都只是在对模型进行estimate了。也因为Validation还是在做选择,只要做选择就会有数据的污染等等,所以Validation仍然比testing要乐观。对于模型来说,testing的表现才是真正要看重的,不是最好的validation的表现。

 

转载于:https://www.cnblogs.com/huang22/p/5401159.html

你可能感兴趣的文章
方法的重载和重写
查看>>
计算机网络 -面经(1)
查看>>
【bzoj5161】最长上升子序列 状压dp+打表
查看>>
RabbitMQ安装
查看>>
dmidecode查看设备硬件信息
查看>>
Day33、基于udp的套接字、socketserver模块、关于进程的简单介绍
查看>>
2.2计算圆柱体的体积.py
查看>>
HDU 3466 Proud Merchants
查看>>
java list 容器的ConcurrentModificationException
查看>>
前端 HTML 注释
查看>>
前端 HTML标签属性
查看>>
glassfish的启动
查看>>
513. 找树左下角的值
查看>>
asp mvc 中重写JsonResult,解决Json返回值序列化问题
查看>>
微信开发-微信内置浏览器的Javascript API
查看>>
React学习之坑(二)- 基础入门
查看>>
JavaScript - flex布局测试案例【flex】主轴方向
查看>>
JAVA之nio
查看>>
洛谷P2858奶牛零食 题解
查看>>
ASP.NET Web API中把分页信息放Header中返回给前端
查看>>