机器学习基石笔记-Lecture 15 Validation

本节讲如何做模型选择。

对一个问题我们有M个模型,它们分别对应M个假设空间以及相应的算法。如何选择出一个最好的模型呢?

通过之前讲到的overfitting,我们知道Ein最好的不一定Eout好,但是我们其实是希望选出来的模型在Eout上表现尽可能好。

如果我们有额外的test数据,在test上的Etest则可以近似的看做Eout。

这些额外的数据从哪里来呢?一个方法是把现有的样本划分为train和validation, 用validation的Eval来估计Eout.

选出在validation上表现最好的模型,然后再将全部的样本丢进去训练,得到g*,因为样本增多了,理论上应该是比当时的g- 更好的。

如何选择validation的大小呢?

如果K过小,那么Eval对Eout的估计可能就不好,如果K过大,那么train的样本过少,训练出来的g- 与g可能差的就比较多,Eout就不能通过Eout(g-)来反映了。

通常选择1/5的样本量作为validation.

leave-one-out cross validation

N个样本,每次留一个作为validation, N-1个用于训练。这样进行N此,得到N个不同的 g- ,对每个g-在validation上的error做平均,那么可以看成这个模型的Eout.

Eloocv的期望理论上可以反映Eout(g-)的期望,某种程度也反映了Eout(g),所以Eloocv是一个好的衡量模型的方法。

在上述推导中,个人理解这个部分像是全期望公式一样,首先固定Dn,对全部的(xn,yn)有一个期望,然后再对全部的Dn有一个期望。

V-fold cross validation

loocv的一个缺点是计算量过多,所以用了等分V份的方式来做cross validation。

 
原文地址:https://www.cnblogs.com/akanecode/p/7054671.html