0

我对数据集的训练和验证有疑问。

我了解训练数据标签的概念,即 y_train。我不明白为什么我们的测试/验证样本也应该有标签。我假设通过为测试样本提供标签,我们在将它们通过算法之前定义它们是什么,对吗?

让我这么说吧,如果我有一个狗和猫的图片数据集,我分别标记它们 1 和 2。那么如果我想扔一张图片(狗)来测试我的模型,而我的训练数据集中没有,我为什么要给它贴标签呢?如果我将它标记为 1,那么我预先告诉它是一只狗,如果我将它标记为 2,那么它已经是一只猫了。

我可以有一个没有标签的测试/验证数据集吗?

4

2 回答 2

1

验证数据集用于微调模型中的参数,而测试集用于检查准确性。没有标签怎么能声称你的模型是正确的。这个概念在监督学习中是有效的,因此需要有带有测试和验证数据集的标签。

于 2018-09-20T10:59:43.530 回答
1

顾名思义,测试集的目的是在训练期间未看到的数据中测试模型的性能。为了获得这个性能指标,您当然需要具有已知标签的数据,以便这些标签(基本事实)与相应的模型预测进行比较,并得出模型性能的一些定量测量(例如准确性) - 一些如果没有这些标签在测试集中可用,您当然不能这样做。

如果我想扔一张照片(狗)来测试我的模型,我为什么要给它贴标签?如果我将它标记为 1,那么我预先告诉它是一只狗,如果我将它标记为 2,那么它已经是一只猫了。

您在这里非常松散地使用术语“测试” - 这不是它在测试集上下文中的含义(我刚刚在上面描述的上下文)。另请注意,测试标签可用这一事实并不意味着模型在预测期间正在使用它们(它们当然不是 - 它们仅用于与模型预测进行比较,如上所述)。另外,您指的是一个非常具体的问题,其中答案(猫/狗)对人类观察者来说是显而易见的 - 尝试使用相同的原理,例如在基因组学问题中,或者在要求数字预测的问题中,例如房价,你会发现情况并不是那么简单明了(你能不能只看一眼就能说出房子的价格呢?一排数字?)...

这同样适用于验证集,只是这里的目标不同(即不是模型评估,而是模型调整)。

诚然,有些人使用术语“测试数据”来泛指任何看不见的数据,但这是不正确的;在使用训练集、验证集和测试集构建和评估模型后,您可以部署它并为其提供新的且明显不可见的数据,当然希望它已经知道标签......

实际上有几十个关于这个主题的在线教程,SO 可以说不是解决这类问题的最合适的论坛——我只是希望我已经给了你一个足够好的总体思路……

于 2018-09-20T11:04:46.043 回答