为什么只有三个分区?(培训,验证,测试)


61

当您尝试将模型适合大型数据集时,通常的建议是将数据分为三个部分:训练,验证和测试数据集。

这是因为模型通常具有三个“级别”的参数:第一个“参数”是模型类(例如SVM,神经网络,随机森林),第二个参数集是“正则化”参数或“超参数”(例如套索罚分系数,核的选择,神经网络结构)和第三组通常被认为是“参数”(例如协变量的系数)。

给定一个模型类和一组超参数,就可以通过选择使训练集上的误差最小的参数来选择参数。给定一个模型类,可以通过最小化验证集上的误差来调整超参数。一个人根据测试集的性能选择模型类别。

但是为什么不增加分区呢?通常,一个人可以将超参数分为两组,并使用“验证1”适合第一个,使用“验证2”适合第二个。或者甚至可以将训练数据/验证数据分割的大小视为要调整的超参数。

在某些应用程序中这已经是普遍的做法吗?关于数据的最佳分区,是否有任何理论上的工作?

Answers:


79

首先,我认为您误会了三个分区的功能。您不会根据测试数据做出任何选择。您的算法会根据训练数据调整其参数。然后,您可以在验证数据上运行它们,以比较算法(及其训练有素的参数)并确定获胜者。然后,您可以根据测试数据运行获胜者,以预测其在现实世界中的表现。

您不对训练数据进行验证,因为这会过度拟合您的模型。您不会停留在验证步骤的获胜者评分上,因为您一直在不断地调整工作以在验证步骤中获得获胜者,因此您需要进行独立测试(您并未专门针对该测试)关于您在当前领域之外的表现如何的想法。

其次,我认为这里的一个限制因素是您拥有多少数据。在大多数情况下,我们甚至根本不想将数据拆分为固定的分区,因此就不需要CV。


2
我遇到的概念问题是,如果您比较足够的模型,那么当您使用验证数据“确定获胜者”时,就可以有效地拟合验证数据。因此,划分验证数据仍然可能是重点。
charles.y.zheng 2011年

我认为训练验证层和验证测试层在某种意义上具有不同的目的,并且如果您要宣布获胜者,那么最终您确实必须比较通用验证集上的模型。因此,我不确定其他层是否有帮助。(尽管我的知识还不足以真正了解。)我能想到的最接近您建议的是Netflix竞赛的运作方式。我相信他们使用了部分测试集来阻止团队攀登测试集梯度,但是我认为这是不同的。
韦恩

2
@ user10882,您的评论不正确,Firebug也不正确。(1)模型参数(权重,阈值)和(2)所谓的“超”参数(隐藏层数,决策树数)两者可能具有截然不同的解释和感觉,但都只是区分不同参数的参数型号。使用训练数据来优化它们,使用验证数据来避免过度拟合,并使用交叉验证来确保结果稳定。测试数据仅用于指定模型的预期性能,请勿用于接受/拒绝模型。
伊森·德布尔

1
@RubenvanBergen:我理解您的意思,将其指出给user10882是很好且有用的。但是我仍然认为这最终是技术性的。假设您使用梯度下降算法,该算法使用训练数据来推断步长方向(包括多项式次数),以及验证过程,该过程将验证损失添加到梯度下降算法每一步的训练损失中(类似于早期停止)。现在,“正常”或“超级”之间的区别不再相关:它取决于过程。n
伊森·德波尔

1
@YtsendeBoer:很公平-如果您使用诸如基于验证的早期停止之类的方式,那么我同意边界变得模糊,至少在优化过程方面如此。在我看来,这并未完全融合“超参数”和常规参数的概念。在许多情况下,对它们的处理也有所不同,我在定义模型的角色方面也有不同的看法。无论如何,我希望这种讨论对其他人有用,以说明这些概念之间的(细微)区别和相似之处=)。
Ruben van Bergen

0

这是一个有趣的问题,我发现它对@Wayne的回答很有帮助。

根据我的理解,将数据集划分为不同的分区取决于作者的目的以及模型在实际应用中的要求。

通常我们有两个数据集:培训和测试。训练模型用于查找模型的参数或拟合模型。测试对象用于评估模型中未可见数据(或真实数据)的性能。

如果我们只是在培训上迈出了第一步,那么显然就有一个培训和测试(或验证)过程。

但是,以这种方式,当一次使用一个数据集训练模型时,可能会引起过度拟合的问题。这可能导致模型在实际问题中的不稳定。解决此问题的一种方法是对训练数据集中的模型进行交叉验证(CV)。这意味着,我们将训练数据集划分为不同的折叠,保留一个折叠以测试用其他折叠训练的模型。现在的赢家是在整个简历过程中损失最小(基于我们自己的目标函数)的赢家。通过这种方式,我们可以确保我们将过度适应培训过程的机会降到最低,并选择合适的获胜者。测试集再次用于评估看不见的数据中的获胜者。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.