交叉验证是一种常用的模型选择方法。
如果给定的样本数量充足,进行模型选择的一种简单方法就是随机地将数据集切分成三部分,分别为训练集(trainning set )、验证集(validation set) 和测试集合 (test set) . 训练集用来训练模型,验证集用来模型的选择,而测试集用于最终对学习方法的评估。在学习到不同复杂度的模型中,选择对验证集有最小预测误差的模型,由于验证集有足够多的数据,用它对模型进行选择也是有效的。
但是,在许多实际应用中数据是不充足的。为了选择好的模型,可以采用交叉验证方法。交叉验证的基本想法是重复地使用数据;把给定的数据进行切分,将切分的数据集合分为训练集和测试,在此基础上反复地进行训练、测试以及模型选择。
1、简单交叉验证
简单交叉验证方法: 首先随机地将已给数据分为两部分,一部分作为训练集,一部分作为测试集(例如:70%为训练集,30%为测试集);然后训练集在各种条件下训练模型,从而得到不同的模型,在测试集上评价各个模型的评价误差,选出测试误差最小的模型。
2、S折交叉验证
方法如下:首先随机地将已给数据切分为S个互不相交的自己;然后利用S-1个自己的数据训练模型,利用余下的自己测试模型;将这一过程对可能S种选择重复进行;最后选出S次测评中平均误差最小的模型。
3、留一交叉验证