机器学习基石第十五周学习笔记

一. Model Selection Problem
现在介绍最后一种解决过拟合的方法Validation。
假如我们使用不同的假设空间获取了很多不同的结果,我们该选择哪个结果作为我们的最终结果呢?
根据视觉结果吗?当然不行,因为高维的数据我们不可见。
这里写图片描述
用Ein吗?也不行因为复杂假设空间的Ein一定会比较小。
这里写图片描述
我们最终选择Etest作为选择模型的标准,Etest用测试数据对模型进行测试。且根据霍夫丁定理,Etest的结果是非常接近Eout的。这时就又出现了一个问题,那就是我们的测试数据哪里来?
这里写图片描述
我们的选择是将我们手中的学习数据留下一部分作为测试数据。
这里写图片描述

二.Validation
我们从原始的数据集D中保留一部分为Dval,剩下的一部分为Dtrain我们用Dtrain去训练模型,然后用Dval去评估这些模型的Eout。
这里写图片描述
我们只会用Dtrain和Dval去选择适当的模型,而不会直接拿Dtrain训练出来的h去当做最后结果,因为Dtrain数据量不足,无法保证最终结果正确,所以我们一般会再用D去训练选择的模型,作为最终的结果。
这里写图片描述
用validation选择模型然后训练的结果与直接使用Ein的模型的结果如下图所示,虚线当我们使用D作为训练数据,然后用那不存在的测试数据做测试所获取的结果,我们发现Eout很低。黑线为直接用Ein所选的模型作为结果的Eout,一直很高,红线为我们直接使用g-作为结果的Eout,Eout从低到高。
蓝线为用g-和Eval选出模型后再用D对模型进行训练所获得的结果我们发现去效果不错,但是也是先下后上。
这是为什么呢?
这里写图片描述
这是因为当K(作为验证的数据量)很大时Eval能很好的评估g-的好坏,但是这时Dtrain就会很小,这就让Eout和g-的差距变大,所以会让结果差距任然很大。同样k很小时虽然Eout和g-差距很小但是g-和Eval的差距又会变大,这就Eval就不能准备的判断g-的好坏。
我们想要的是好的Eout(g)但是我们不能直接测得,所以我们用Eout(g-)来代替Eout(g),然后通过Eval(g-)判断Eout(g-)来判断Eout(g).
这里写图片描述

三.Leave-One-Out Cross Validation
主要是下面的证明有点难理解。
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

四.V-Fold Cross Validation
leave one out方法有两个不好的地方:
1.计算量太大。
2.跳变有点大。
这里写图片描述
V-fold Cross Validation
即将数据分成十份之后再使用leave one out。这样计算量下降,结果却和leave one out差不多。
这里写图片描述
但是注意了,验证的结果或许很好,但是实际上的结果却不一定好,只是验证结果会比较接近实际结果,一切还是以测试为准。这里写图片描述

猜你喜欢

转载自blog.csdn.net/Du_Shuang/article/details/81780956
今日推荐