首页 > 解决方案 > 训练、验证和测试集的分布?

问题描述

我想问一下train、validation和test set的分布?假设,我想用两类“猫”和“狗”制作一个二进制 resnet 分类器。

假设每个类的图像名称是:

猫:a、b、c、d、e

狗:f、g、h、i、j

假设我希望每个类的2 个图像成为测试集,每个类的1 个图像成为验证集

哪种分配方案实际上是正确的?


方案一

测试集

猫:a,b

狗:我,j

动车组

猫:c,d

狗:f,g

验证集

猫:e

狗:h


方案二

测试集

猫:a,b

狗:我,j

动车组

猫:c,d,e

狗:f,g,h

验证集

猫:e

狗:h


让我感到困惑的是,验证集是否也是方案 2中的训练集的成员?还是验证集与方案 1中的训练集是分开/不同的?谢谢您的帮助

标签: classificationtraining-datatrain-test-split

解决方案


训练、验证、测试集——这三组必须完全不同。在单个时期的执行期间,一个不能溢出到另一个。

训练集用于训练模型,即学习权重。

验证集用于根据性能微调超参数。在达到满意的模型后,测试集就被带入图片中。

测试集就像一个大惊喜,真正的展示。直到模型最终确定后才能看到。它有助于分析真正意义上的学习模型。

如何将它们分开?最好将它们随机分离并在每个集合中平均分配每个类。

对于培训,您还可以查看CrossValidation。它有助于消除在对同一组图像进行训练和验证时可能出现的偏见。


推荐阅读