K折交叉验证

随声附和 提交于 2020-02-12 19:47:16

在机器学习领域,特别是涉及到模型的调参与优化部分,k折交叉验证是一个经常使用到的方法,本文就结合示例对它做一个简要介绍。
该方法的基本思想就是将原始数据进行分组,一部分做为训练集来训练模型,另一部分做为测试集来评价模型。k折,就是将原数据分为k份,其中k-1份用于训练模型,另一份用于检验模型效果。

k折交叉验证的基本思路如下:
第一步,不重复抽样将原始数据随机分为 k 份;
第二步,挑选其中 1 份作为测试集,剩余 k-1 份作为训练集用于模型训练,在训练集上训练后得到一个模型,用这个模型在测试集上测试,保存模型的评估指标;
第三步,重复第二步 k 次(确保每个子集都有一次机会作为测试集);
第四步,计算 k 组测试指标的平均值作为模型精度的估计,并作为当前 k 折交叉验证下模型的性能指标。

通常情况下,k一般取10;当数据量小时,k可以大一点,这样训练集占整体比例就不至于太小,但训练的模型个数也随之增多;数据量大的时候,k可以小一点。

1 使用k折交叉验证反映模型平均性能

为了贴近实用,下面以一个鸢尾花分类的例子具体说明该验证方法的细节:

上图是在没有使用k折交叉验证的情况下,一个模型初次训练之后的准确率,并不能代表模型的平均性能。

使用了k折交叉验证方法后,准确率情况如下,大致可以反映该模型的平均水平:

2 借助k折交叉验证调整模型超参数

从上图中可以知,对于每一个超参数值,选用10折交叉验证,选择12~18的超参数值最好,大于18之后,准确率开始下降(过拟合)。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!