先试想一下,对于一个简单的二分类问题,我们如何选择合适的算法?

我们有许许多多的H,如何选择出最为合适的算法?
最合理的方法是:对于每一个H,我们选择出Eout最小的g,然后对于各个g,再选择Eout最小的。然而,我们并不知道Eout怎么求。

使用Ein显然不合理。

我们之前就说过,Etest的作用相当于Eout。每次我们得到数据,都切出一块数据来模拟test数据,切出来的数据叫做validation数据。

过程就是:
1.对于我们拥有的数据D,分成两份Dtrain和Dval;
2.使用Dtrain训练每一个H,然后使用Dval挑选出最好的Hm;
3.对于Hm重新使用D,训练。
究竟Dval的sizeK大小为多少合适呢?

Leave-One-Out Cross validation
假设K=1,有:


这么做的问题是什么呢?

一是计算量太大,实际上不能实现;二是不稳定。
所以可以使用V-fold Cross Validation

