看仪表盘——validation
先试想一下,对于一个简单的二分类问题,我们如何选择合适的算法?
我们有许许多多的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