交叉验证是在机器学习建立模型和验证模型参数时常用的方法。交叉验证就是重复使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓的‘交叉’。
1.简单交叉验证
所谓的简单,是和其他交叉验证方法相对而言的。首先,我们随机的将样本数据分为两部分(比如: 70%的训练集,30%的测试集),然后用训练集来训练模型,在测试集上验证模型及参数。接着,我们再把样本打乱,重新选择训练集和测试集,继续训练数据和检验模型。最后我们选择损失函数评估最优的模型和参数。
2.k-折交叉验证
k折交叉验证会把样本数据随机的分成k份,每次随机的选择k-1份作为训练集,剩下的1份做测试集。当这一轮完成后,重新随机选择k-1份来训练数据。若干轮(小于k)之后,选择损失函数评估最优的模型和参数。