背景

在构建模型框架后,需要挑选效果较好的超参数,此时如果Profiling 数据集较小,训练集、验证集的划分将会对模型的性能产生较大的影响。

如图一所示,将数据集划分为训练集、验证集、测试集,注意:测试集一旦选定,就不要再洗回到验证集、训练集那部分,否则就是造假图中训练集与验证集位置的选择将会得出不同的表现ACC(准确率)。

图1 不同划分位置导致的不同ACC

方法

为了解决上述问题,提出K-fold cross-validation,这里举4折交叉验证(4-fold cross-validation)

  1. 将数据集(不包含测试集)平均分成4份,其中3份作为训练集,剩余的1份作为验证集。

  2. 第一次使用第1、2、3份作为训练集,第4份作为验证集,分别测试不同的超参数组合情况下,模型的准确率、召回率等指标(按需求自定)作为得分并记录。

  3. 在不同的划分情况下,重复第二步。

  4. 每个不同的超参数组合中的得分取平均值, 最后对比出最优组合。

图2 方法

将图2中每个超参数对应的ACC值取平均可得a->0.575, b->0.825 c->0.725综合选择超参数组合b

总结

交叉验证不仅用于超参数选择,也可用作选择模型,十折交叉验证是目前数据集中数据较多时的交叉验证的最广泛采用的解决方法。