目录
前言
交叉验证的由来:在机器学习的过程中,我们不能将全部数据都用于数据的模型训练,否则会导致我们没有数据集对该模型进行验证,无法评估模型的预测效果。
一、交叉验证(Cross-Validation)
众所周知,模型训练的数据量越大时,通常训练出来的模型效果会越好,所以如何充分利用我们手头的数据呢?
1-1、LOOCV(Leave-One-Out Cross Validation)
这个方法是将数据集分为训练集和测试集,只用一个数据作为测试集,其它的数据都作为训练集,并将此步骤重复N次。
结果就是我们训练了n个模型,每次都得到一个MSE,计算最终的MSE就是将这n个MSE取平均。
缺点是计算量太大。
1-2、K-fold Cross Validation
为了解决LOOCV计算量太大的问题,我们提出了K折交叉验证,测试集不再只是包含一个数据,而是包含多个数据,具体数目根据K的选取而决定,比如说K=5。即:
1、将所有数据集分为5份。
2、不重复地每次取其中一份作为测试集,其它四份做训练集来训练模型,之后计算该模型在测试集上的MSE
3、5次的MSE取平均,就得到最后的MSE。
优点:
1、相比于LOOCV,K折交叉验证的计算量小了很多,而且和LOOCV估计很相似,效果差不多
2、K折交叉验证可以有效的避免过拟合和欠拟合的发生。
1-3、k的选取
根据经验,k一般都选择为5或者是10。
二、K折交叉验证实战。
参考文章
【机器学习】Cross-Validation(交叉验证)详解.
交叉验证(Cross Validation).
总结
提示: