我们将学习流程进行以下的调整:
(1)首先,将数据集分为两部分,分别是训练集和测试集;
(2)将要调整的超参给定一个值,比如说 epochs = 100;
(3)将训练集随机平均的分为 k 份,依次选择其中的一份作为验证集,剩余的仍然作为训练集,或称为某一折。因为可以有 k 份不同的验证集,所以总共有 k 折;
(4)在某一折上,通过训练集算出参数,然后在验证集上算出准确率;
(5)在不同的折上,重复(3)(4)步,得到 k 个准确率,将这些准确率的平均数作为最终的结果,并记录下来。(3)(4)和(5)可以图示如下(假设 k=5 ):
(6)然后,不断调整超参数,比如说 epochs = 200;不断重复(3)(4)(5)和(6),直到找到平均准确率最高的超参数;
(7)最后,使用找到的超参数,在整个训练集上进行训练,这样就可以使用更多的数据用于训练。
上述的(3)(4)和(5)步骤就是 k 折交叉验证(英文:K-fold Cross Validation)。
整个学习过程变成下面这样: