我对数据集的训练和验证有疑问。
我了解训练数据标签y_train的概念。我不明白的是,为什么我们的测试/验证样本也要有标签。 我假设通过给测试样本加上标签,我们可以确定它们是什么,然后再对算法进行正确处理?
如果我有一个狗和猫的图片数据集,并分别标记为1和2,就让我这样说。然后,如果我想扔一张照片(狗)来测试我的模型(该模型不在我的训练数据集中),为什么要标记它?如果我将其标记为1,则事先告诉它是狗,如果我将其标记为2,则已经是猫。
我可以有没有标签的测试/验证数据集吗?
答案 0 :(得分:1)
test 集的目的,顾名思义,是用来测试训练期间未看到的数据中模型的性能。为了获得性能指标,您当然需要带有已知标签的数据,以便将这些标签(基本事实)与相应的模型预测进行比较,并得出一些定量< / em>衡量(例如,准确度)模型性能-如果测试集中没有这些标签,您当然不能做 。
如果我想扔一个图片(狗)来测试我的模型,为什么要标注它?如果我将其标记为1,则事先告诉它是狗,如果我将其标记为2,则已经是猫。
您在这里非常宽松地使用了“测试”一词-在测试集的上下文中(这就是我刚刚在上面描述的上下文),这不是它的含义。还请注意,测试标签可用这一事实并不意味着模型在预测期间正在使用(它们肯定不是-它们仅用于比较和模型预测,如上所述)。另外,您指的是一个非常具体的问题,其中答案(猫/狗)对于人类观察者来说很明显-尝试使用相同的原理,例如在一个基因组学问题中,或者在一个需要对房价进行数值预测的问题中,您会发现情况并非如此简单明了(您可以说出房子的价格吗?只需查看一行数字?)...
验证集也是如此,只是此处的目标有所不同(即不是模型评估,而是模型调整)。
诚然,有些人通常使用“测试数据”一词来表示任何看不见的数据,但这是不正确的。在使用训练,验证和测试集构建并评估模型之后,您可以部署模型,并为模型提供新的,显然是看不见的数据,当然对于 来说,他们已经不知道标签了。 ..
关于这个主题的字面上有许多在线教程,因此SO可以说不是最适合此类问题的论坛-我只是希望我给了您第一个足够好的一般想法...
答案 1 :(得分:0)
验证数据集用于微调模型中的参数,而测试集用于检查准确性。没有标签,怎么可以声称模型的正确性。这个概念在监督学习中是有效的,因此需要带有测试和验证数据集的标签。