数据集划分:交叉验证

一、简单划分:数据集:测试集=7:3

问题:

1).没有充分的利用数据集;

2).回归问题中的MSE(mean square error)受到划分比例的影响,导致最终模型的最优参数选择也受到划分比例的影响。

【图来源:https://zhuanlan.zhihu.com/p/24825503?refer=rdatamining】

右侧是10种数据集划分方法得到的"不同阶次的多项式模型—均方差"图

可以看到,不同的数据集划分方式,达到最小MSE的多项式模型是不同的,所以这种“一刀切”的简单数据集划分方法不够合理。

二、LOOCV(leave-one-out cross validation)

每次选取1个样本作为测试样本,其余n-1个作为训练样本。若为回归模型,分n次进行MSE计算,最终MSE取均值。

优点:不受数据集划分方法的影响;

缺点:计算量太大,计算成本是简单划分的n-1倍。

三、k折交叉验证(k-fold cross validation)

1.k取值:

一般取k=5~10;

考虑k对bias(可表征模型对样本的拟合精度)和variance(可表征模型泛化能力)的影响,k越大,bias越小,variance越大;k越小,bias越大,variance越小。所以为了平衡bias和variance,一般选取k=5~10。【bias大,模型欠拟合,variance大,模型过拟合,所以k的选取关系到模型的欠拟合和过拟合】

2.k折交叉验证含义:

若k=5,将数据集分成5份,每次取1份作为测试集,其余4份作为训练集。若为回归模型,分5次进行MSE计算,最终MSE取均值。

若为分类模型,分五次进行错分类统计,最终错分类个数取均值。

【Erri是第i组测试集中错分类的个数。】

 3.k-fold CV 优点

兼具简单划分和LOOCV的优点:不受数据集划分方法的影响(LOOCV);且计算量小(简单划分)

4.k-fold CV 精度

【图来源:https://zhuanlan.zhihu.com/p/24825503?refer=rdatamining】

图中,红线代表k折验证,黑色虚线代表LOOCV。【LOOCV可看作k=N的交叉验证】

参考资料:

1.机器学习:交叉验证详解,https://zhuanlan.zhihu.com/p/24825503?refer=rdatamining,作者:文兄

猜你喜欢

转载自www.cnblogs.com/feynmania/p/12935492.html