"培训数据集的差异","测试数据集"和"验证数据集"

时间:2014-07-30 16:01:15

标签: machine-learning cross-validation training-data

我有250个人脸图像,我将训练模型。 为了方便起见,我要做的是选择前10个图像并使用离开一个图像输出交叉验证来训练模型,以便每个图像都有机会成为测试图像。我的理解是,在那种情况下,我的训练数据集的大小是9,我的测试数据集的大小是1.之后,我将获得接下来的10个图像,然后使用它们来训练模型。 在这种情况下,我的训练数据集的大小将为19,测试数据集将为1(这将重复进行20次,以便每个图像都有机会进入测试集)。 同样地,这一直持续到我使用所有250个图像来训练模型。

我不明白的是“验证数据集”。我是以错误的方式做的吗?

Stackoverflow上有一个答案,但我不清楚。这就是我发布这个问题的原因

2 个答案:

答案 0 :(得分:1)

您应该以约6:2:2的比例将数据分成训练,验证和测试集。为了训练你的模型你使用训练集。比较训练集和验证集的结果可为您提供有关偏差和方差的信息。最后,测试集显示了模型的预测效果。您的模型在训练期间没有看到您的任何测试示例。

答案 1 :(得分:0)

原因是开发模型总是涉及调整其配置:例如,选择层数或层的大小(称为模型的超参数,以区别于参数,即网络的权重)。您可以通过使用模型在验证数据上的性能作为反馈信号来进行此调整。从本质上讲,这种调整是一种学习形式:在某些参数空间中搜索良好的配置。

将您的数据拆分为培训,验证和测试集可能看起来很简单,但有一些先进的方法可以在少量数据可用时派上用场,就像你的情况只有25个数据点一样。

您可以查看三种经典的评估方法:

  • 简单的保留验证
  • K-fold验证
  • 通过改组迭代K倍验证。