当前位置: 代码迷 >> 综合 >> 模型选择与K折交叉验证
  详细解决方案

模型选择与K折交叉验证

热度:81   发布时间:2024-01-25 18:17:10.0

在机器学习中,我们通常需要评估若?候选模型的表现并从中选择模型。这?过程称为模型选择
(model selection)。可供选择的候选模型可以是有着不同超参数的同类模型。以多层感知机为例,
我们可以选择隐藏层的个数,以及每个隐藏层中隐藏单元个数和激活函数。为了得到有效的模
型,我们通常要在模型选择上花费?番功夫。下?,我们来描述模型选择中经常使?的验证数据
集(validation data set)。

验证数据集
严格意义上,测试集只能在所有超参数和模型参数选定后使??次。我们不可以使?测试数据选
择模型,例如调参。由于我们?法从训练误差估计泛化误差,因此也不应只依赖训练数据选择模
型。有鉴于此,我们可以预留?部分在训练数据集和测试数据集以外的数据来进?模型选择。这
部分数据被称为验证数据集,简称验证集(validation set)。例如,我们可以从给定的训练集中随
机选取?小部分作为验证集,而将剩余部分作为真正的训练集。
然而在实际应?中,由于数据不容易获取,测试数据极少只使??次就丢弃。因此,实践中验证
数据集和测试数据集的界限可能?较模糊。严格意义上,除?明确说明,本书中实验所使?的测
试集应为验证集,实验报告的测试精度应为验证精度。

K 折交叉验证
由于验证数据集不参与模型训练,当训练数据不够?时,预留?量的验证数据显得太奢侈。?个
改善的?法是K 折交叉验证(K-fold cross-validation)。在K 折交叉验证中,我们把原始训练
数据集分割成K 个不重合的?数据集。然后我们做K 次模型训练和验证。每?次,我们使??
个?数据集验证模型,并使?其他K ? 1 个?数据集来训练模型。在这K 次训练和验证中,每
次?来验证模型的?数据集都不同。最后,我们对这K 次训练误差和验证误差分别求平均。

  相关解决方案