首先,为什么要交叉验证:目的有两个:
1.选择合适的模型
2.选择合适的参数
1.对于一个问题,可以用模型m1,m2,不知道哪个的准确率高,可以交叉验证一下,从而选择用哪个
2.对于一个模型,参数的选择会影响结果,所以用交叉验证选择最合适的参数
然后,常用的交叉验证的方式是k折交叉验证(k-fold cross validation)
把数据集分为训练集和测试集:
先把所有数据分成k组,其中k-1组作为训练集,剩下的一组作为测试集,这样有k种选法
把k种选法得到的训练集和测试集进行模型训练和测试,得到的结果平均,就是交叉验证的结果。
还有一种方法,就是留n法,每次把n个数据作为测试集,留1法就是k折的一个特例。