翻译:测试Test和验证Validation数据集的区别

原文地址:https://machinelearningmastery.com/difference-test-validation-datasets/

验证数据集是训练模型时保留的数据样本,用于在调整模型的超参数时估计模型技能。

验证数据集与测试数据集不同(测试数据集也无法用于模型训练),是用于在最终模型之间进行比较或选择时对最终调整模型的技能进行无偏估计。

在应用机器学习中,关于验证数据集究竟是什么以及它与测试数据集有何不同,存在很多混淆。

在这篇文章中,您将发现训练、测试和验证数据集的清晰定义,以及如何在您自己的机器学习项目中使用每个数据集。

看完这篇文章,你会知道:

  • 机器学习领域的专家如何定义训练、测试和验证数据集。
  • 验证和测试数据集在实践中的区别。
  • 在评估模型时可以用来充分利用验证和测试数据集的过程。

让我们开始吧。

教程概述
本教程分为4部分; 他们是:

  1. 什么是专家验证数据集?
  2. 训练、验证和测试数据集的定义
  3. 验证数据集不充足
  4. 验证和测试数据集消失

什么是专家验证数据集?
我发现了解从业者和专家如何准确描述数据集很有用。

在本节中,我们将看看训练、测试和验证数据集是如何定义的,以及它们如何根据一些顶级机器学习文本和参考资料而有所不同。

通常,术语“验证集”与术语“测试集”可互换使用,指的是阻止训练模型的数据集样本。

在训练数据集上评估模型技能会导致得分有偏差。因此,模型在保留样本上进行评估,以给出模型技能的无偏估计。这通常称为算法评估的训练-测试拆分方法。

假设我们想估计与在一组观测值上拟合特定统计学习方法相关的测试误差。验证集方法 […]是此任务的一个非常简单的策略。它涉及将可用的观察集随机分为两部分,训练集和验证集或保留集。该模型拟合训练集,拟合模型用于预测验证集中观测值的响应。由此产生的验证集错误率——通常在定量响应的情况下使用MSE 评估——提供了对测试错误率的估计。

— Gareth James 等人,第 176 页,统计学习简介:在 R 中的应用,2013 年。
我们可以在库恩和约翰逊的优秀著作《应用预测建模》中直接看到可互换性。在这个例子中,他们清楚地指出,最终的模型评估必须在之前没有使用过的保留数据集上执行,无论是用于训练模型还是调整模型参数。

理想情况下,应该在未用于构建或微调模型的样本上评估模型,以便它们提供对模型有效性的无偏见感。当手头有大量数据时,可以留出一组样本来评估最终模型。 “训练”数据集是用于创建模型的样本的通用术语,而“测试”或“验证”数据集用于验证性能。

— Max Kuhn 和 Kjell Johnson,第 67 页,应用预测建模,2013 年

也许传统上用于评估最终模型性能的数据集被称为“测试集”。 Russell 和 Norvig 在他们开创性的 AI 教科书中重申了保持测试集完全独立的重要性。他们将以任何方式使用来自测试集的信息称为“偷看”。他们建议完全锁定测试集,直到所有模型调整完成。

Peeking 是使用测试集性能来选择假设并对其进行评估的结果。避免这种情况的方法是真正保留测试集 - 将其锁定,直到您完全完成学习并且只想获得对最终假设的独立评估。(然后,如果您不喜欢结果……如果您想返回并找到更好的假设,您必须获得并锁定一个全新的测试集。)

— Stuart Russell 和 Peter Norvig,第 709 页,人工智能:现代方法,2009 年(第 3 版)

重要的是,Russell 和 Norvig 评论说用于拟合模型的训练数据集可以进一步拆分为训练集和验证集,并且正是训练数据集的这个子集,称为验证集,可以用来得到模型技能的早期估计。

如果测试集被锁定,但您仍然希望测量未见数据的性能作为选择好的假设的一种方式,则将可用数据(不含测试集)划分为训练集和验证集。

— Stuart Russell 和 Peter Norvig,第 709 页,人工智能:现代方法,2009 年(第 3 版)

该验证集的定义得到了该领域其他开创性文本的证实。 Ripley 的书“模式识别和神经网络”中的术语表是一个很好的(和较旧的)示例。具体来说,训练、验证和测试集定义如下:

– 训练集:用于学习的一组示例,即拟合分类器的参数。 – 验证集:一组用于调整分类器参数的示例,例如选择神经网络中隐藏单元的数量。
– 测试集:一组仅用于评估完全指定分类器的性能的示例。

— Brian Ripley,第 354 页,模式识别和神经网络,1996

这些是这些术语的推荐定义和用法。

这些定义是规范的一个很好的例子是它们在著名的神经网络常见问题解答中的重申。除了重申 Ripley 的术语定义外,它还讨论了在应用机器学习中“测试集”和“验证集”这两个术语的常见误用。

关于机器学习的文献经常颠倒“验证”和“测试”集的含义。这是普遍存在于人工智能研究中的术语混淆的最明显例子。

关键在于,根据 NN [神经网络] 文献中的标准定义,测试集绝不会用于在两个或多个网络之间进行选择,因此测试集上的误差提供了对泛化误差的无偏估计(假设测试集代表总体等)。

— 主题:总体、样本、训练集、设计集、验证集和测试集是什么?

您是否知道这些术语的任何其他明确定义或用法,例如在论文或教科书中引用?
请在下面的评论中告诉我。

训练、验证和测试数据集的定义
为了重申对上述专家的研究结果,本节提供了这三个术语的明确定义。

训练数据集:用于拟合模型的数据样本。
验证数据集:用于在调整模型超参数时对模型拟合在训练数据集上的无偏评估的数据样本。 随着验证数据集的技能被纳入模型配置,评估变得更加有偏见。
测试数据集:用于对训练数据集上的最终模型拟合提供无偏评估的数据样本。
我们可以用伪代码草图具体化:
在这里插入图片描述
以下是一些额外的澄清说明:

  • 验证数据集还可以在其他形式的模型准备中发挥作用,例如特征选择。
  • 最终模型可以适合训练和验证数据集的聚合。

对于您的用例,您是否清楚这些定义?

验证数据集还不够
还有其他方法可以计算对未见数据的模型技能的无偏估计(或在验证数据集的情况下逐渐有偏)估计。

一个流行的例子是使用 k 折交叉验证来调整模型超参数而不是单独的验证数据集。

在他们的书中,Kuhn 和 Johnson 有一个标题为“数据拆分建议”的部分,他们在其中列出了使用单一“测试集”(或验证集)的局限性:

如前所述,有一个强有力的技术案例可以针对单个独立的测试集:

– 测试集是对模型的单一评估,表征结果中的不确定性的能力有限。 – 比例较大的测试集以增加性能估计偏差的方式划分数据。 – 样本量小: –
模型可能需要每个可能的数据点来充分确定模型值。 – 测试集的不确定性可能相当大,以至于不同的测试集可能会产生非常不同的结果。 –
重采样方法可以对模型在未来样本上的表现做出合理的预测。

— Max Kuhn 和 Kjell Johnson,第 78 页,应用预测建模,2013 年

由于性能估计具有理想的低偏差和方差特性,他们继续建议一般使用 10 倍交叉验证的小样本量。他们推荐在比较模型性能的情况下使用 bootstrap 方法,因为性能估计的差异很小。

对于较大的样本量,他们通常再次推荐 10 倍交叉验证方法。

验证和测试数据集消失
您很可能不会在现代应用机器学习中看到对训练、验证和测试数据集的引用。

如果从业者选择使用 k 折交叉验证与训练数据集来调整模型超参数,则对“验证数据集”的引用将消失。

我们可以使用伪代码草图使这一点具体如下:
在这里插入图片描述
如果使用训练数据集对模型超参数的交叉验证嵌套在更广泛的模型交叉验证中,则对“测试数据集”的引用也可能消失。

最终,剩下的只是来自域的数据样本,我们可以继续将其称为训练数据集。

进一步阅读
如果您想深入了解,本节将提供有关该主题的更多资源。

总结
在本教程中,您发现“验证数据集”和“测试数据集”这两个术语以及在评估您自己的机器学习模型的技能时如何正确导航这些术语存在很多混淆。

具体来说,你学到了:

  • 在评估模型时,“训练数据集”、“验证数据集”和“测试数据集”所指的内容有明确的先例。
  • “验证数据集”主要用于在调整超参数和数据准备时描述模型的评估,而“测试数据集”主要用于描述将最终调整模型与其他最终模型进行比较时的评估。
  • 当采用 k 折交叉验证等替代重采样方法时,“验证数据集”和“测试数据集”的概念可能会消失,尤其是当重采样方法嵌套时。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值