classification - 训练、验证和测试集的分布?
问题描述
我想问一下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中的训练集是分开/不同的?谢谢您的帮助
解决方案
训练、验证、测试集——这三组必须完全不同。在单个时期的执行期间,一个不能溢出到另一个。
训练集用于训练模型,即学习权重。
验证集用于根据性能微调超参数。在达到满意的模型后,测试集就被带入图片中。
测试集就像一个大惊喜,真正的展示。直到模型最终确定后才能看到。它有助于分析真正意义上的学习模型。
如何将它们分开?最好将它们随机分离并在每个集合中平均分配每个类。
对于培训,您还可以查看CrossValidation。它有助于消除在对同一组图像进行训练和验证时可能出现的偏见。
推荐阅读
- metrics - collectd - exec 插件:无法解析命令
- r - 在 mutate 中使用 map 来迭代两个数据帧
- jquery - 简单顺风下拉
- ios - 在 Swift 中检查 iOS 设备是否有 LiDAR
- c - 使用 C 中的宏将字符串 var 的内容与字符串连接起来
- sql - 没有主键的重复行保留 1 行 postgresql
- javascript - 需要用回调函数替换正则表达式
- mongodb - 是否可以在 MongoTemplate 中计算不同的文档?
- concurrency - 在 Erlang 中发送/接收消息(并发)
- android - 为什么
/tools/proguard/lib/proguard.jar 版本没有变化?