先试想一下,对于一个简单的二分类问题,我们如何选择合适的算法?
我们有许许多多的H,如何选择出最为合适的算法?
最合理的方法是:对于每一个H,我们选择出E最小的g,然后对于各个g,再选择E最小的。然而,我们并不知道E怎么求。
使用E显然不合理。
我们之前就说过,E的作用相当于E。每次我们得到数据,都切出一块数据来模拟test数据,切出来的数据叫做validation数据。
过程就是:
1.对于我们拥有的数据D,分成两份D和D;
2.使用D训练每一个H,然后使用D挑选出最好的H;
3.对于H重新使用D,训练。
究竟D的sizeK大小为多少合适呢?
Leave-One-Out Cross validation
假设K=1,有:
这么做的问题是什么呢?
一是计算量太大,实际上不能实现;二是不稳定。
所以可以使用V-fold Cross Validation