XDRush

机器学习之交叉验证

1、传统的验证方法

机器学习中数据是十分重要的资源,先来看看传统的验证方法,传统的验证方法大概分为4步:

第一步

将所有样本分为训练数据测试数据两部分,假设训练数据占70%,测试数据占30%。训练数据用于训练模型,测试数据用来测试模型性能。
传统验证方法步骤一

第二步

在给定超参数下,用70%的训练数据得到模型。
传统验证方法步骤二

第三步

用剩下的30%测试数据测试严重上述二中得到的模型。
传统验证方法步骤三

第四步

为了不浪费数据,再将所有100%的数据来验证模型,继续修正参数得到最终的模型。
传统验证方法步骤四

机器学习中数据是最为宝贵的资源的之一,传统的验证方法无法充分利用样本,因此,在传统验证方法基础上,提出了交叉验证思想。

2、交叉验证

为使数据得到充分利用,提出了一种优化的交叉验证方法,具体执行步骤如下:

第一步

第一步首先将数据分成3部分,训练集、验证集和测试集,假设各占70%、15%、15%,
交叉验证步骤一

第二步

在同一组训练集上,使用若干个不同的超参数,训练得到不同的模型,如图所示,假设3个模型分别为A、B、C。
交叉验证步骤二

第三步

在相同的验证集上分别验证上述步骤二中得到的A、B、C,选取最佳超参数所对应的模型。
交叉验证步骤三

第四步

在上述三所得到的最优模型基础上,继续用训练集和验证集对模型进行进一步优化,进一步修正模型的参数。
交叉验证步骤四

第五步

在测试集上测试上述四中得到的模型,通常情况下,这时的模型会比较好。
交叉验证步骤五

第六步

用所有数据继续训练所得到的模型,就是最终的模型。
交叉验证步骤六

通过上述步骤,能够充分利用训练样本集,得到最优的模型。