内容摘要
K折交叉验证法就是任意将训练数据集切分为K份,(K-1)份作为训练数据集,1份用于性能评估。训练数据集的K个子集上重复Holdout方法K次,从而解决了Holdout方法的不足,保证了模型的稳定性。
文章编号:AI-0015-V1.1
所属类别:人工智能
文章正文
上文我们讲了实现模型选择的Holdout交叉验证法,这种方法的不足之是:样本数据的划分对模型的性能影响很大,下面就介绍一下模型选择的第二个方法:K折交叉验证法。
通常,我们使用K折交叉验证法实现模型的调优,也就是发现满意的泛化性能所需的最优超参值,而超参则是基于测试分数评估模型的性能确定的。
一旦发现了满意的超参值,就可以在完整的训练数据集上重新训练模型,并使用独立的测试数据集获得最终的性能估计。
采用K折交叉验证法将模型拟合到整个训练数据集的基本原理是:为学习算法提供更多的训练样本,通常会产生更为准确和鲁棒的模型。
由于K折交叉验证属于无替换采样技术,其优点是每一个样本都可以仅有一次作为测试份(fold)数据用于训练和验证,这使得它在模型性能方面,比Holdout交叉验证法表现的更稳定。
下面我们将K设置为10,也就是将训练数据集分为10份。在10次迭代中,9份用于训练,1份用于测试数据集的模型评估,实现思路如下图所示:
经验表明,K的最佳取值为10,因为在这种情况下,10折交叉验证可以让偏差与方差取得最好的平衡。
如果降低K值,将有更多的训练数据用于每次迭代,这将造成更小的悲观偏差,也就是模型过于粗糙,不好用;
如果增大K值,由于训练份数相互之间更相似,会引起高方差问题,也就是模型过分理想化,不实用。
以上就是对于模型选择阶段K折交叉验证法的介绍。
内容小结
K折交叉验证法的原理是:将数据集分为K份,K-1份的训练数据集用于构建模型,确定模型最优超参值,然后基于这个确定的超参值再基于1份测试数据集验证模型性能。
领取专属 10元无门槛券
私享最新 技术干货