当前位置: 首页 > java >正文

如果验证集缺失或测试集缺失应该怎么办?

测试集缺失

比如Kinetics-400,
Kinetics-400 数据划分说明(官方)

  • Train set:约 240K 视频。
  • Validation set:约 20K 视频,带有标签。
  • Test set:约 40K 视频,没有公开标签,只能提交给官方服务器评测(例如通过 DeepMind 或 CVPR/ECCV 挑战)。

推荐方案:

  • 训练用: train
  • 测试用: val(相当于 test)

发布论文时写法建议:
We train our model on the official training split of Kinetics-400 and evaluate on the validation split, following standard practice [1,2].
附参考资料:
[1] Kinetics Dataset 官网 (DeepMind)
[2]Kinetics GitHub

验证集缺失

第一个例子

比如UCF101,是一个动作识别数据集,共包含:

  • 101 类动作
  • 13,320 个视频
  • 官方提供了 3 个标准划分(split 1、split 2、split 3),每个划分都给出训练集和测试集的具体列表(train/test txt 文件)

官方提供内容包括:

  • trainlist01.txt:split 1 的训练样本列表(包含类别标签)
  • testlist01.txt:split 1 的测试样本列表(无标签,需配合类别名或额外标签文件使用)
  • 类别标签文件 classInd.txt:类别名与索引的对应关系

常见做法(尤其在 MMAction2 中)

  1. 方式一:只用官方 train/test
    这是最主流的方式,适合用于报告最终结果、和其他工作对比:
    使用 split 1 / split 2 / split 3,逐个训练测试
    然后对三次测试结果求平均,作为最终准确率
  2. 方式二:从 train 中划一部分作为验证集(仅训练阶段)
    为了在训练中进行超参数调优或 early stopping,一些研究者会:
    从 trainlist01.txt 中划出 10%~20% 作为 “val”
    不在最终评估中用这个 val

第二个例子

HMDB51 提供了 3 个标准划分(split 1、2、3),每个划分都明确指定了:

  • 训练集(train)
  • 测试集(test)

与 UCF101 类似,没有单独的验证集(val)。
对于每一个类别(例如 brush_hair),都会有一个 .txt 文件,例如:
brush_hair_test_split1.txt
这个文件中内容类似于:
April_09_brush_hair_u_nm_np1_ba_bad_0.avi 1
April_09_brush_hair_u_nm_np1_fr_med_1.avi 2

  • 1 表示训练样本
  • 2 表示测试样本
  • 0 表示不使用(不常见)
    所以这类文件是“合并标注”,要自己划分成 train.txt 和 test.txt
    在brush_hair_test_split1.txt中出现为2的在其它两个划分中为1

交错分组 + 留一策略
“交错分组 + 留一策略” 是 HMDB51 数据集在构建 3 个标准划分(split 1/2/3)时采用的一种数据划分思想,其核心是:

  • 把全部数据打散、按人或者视频进行分组,在不同的 split 中交替作为训练集或测试集,以最大化训练/测试数据的多样性,同时避免信息泄露。

1️⃣ 交错分组(interleaved grouping)

  • HMDB51 中的视频是从多个来源提取的,每个动作类的视频数量不大(几十个)。
  • 为了确保三次划分都能覆盖尽可能多的视频,他们做了“交错”分组。

2️⃣ 留一策略(leave-one-group-out)

  • 这在动作识别中指的是:为了避免训练集中出现与测试集中太相似的-数据(如来自同一人、场景或视频源),故意把某一类或某些样本排除在一个 split 的训练或测试之外。
  • 这是一种防止“数据泄露”的策略,避免模型因为见过相似背景或人物而获得不公平优势。
    推荐:方式 1(从训练集中划出部分作为验证集)
    不推荐:方式 2(用 0 样本做验证集)

怎么知道一篇论文是否用了“train 和 test”,有没有划分验证集?

  • 如果写的是:
    “We follow the standard three splits of UCF101.”
    那就是完全使用官方的划分,没有验证集。
  • 如果写的是:
    “We randomly select 10% of the training data as validation.”
    那说明他们自己划了 val,只用于训练调参。
http://www.xdnf.cn/news/8011.html

相关文章:

  • 常见的游戏服务器架构有哪些?
  • WebSphere Application Server(WAS)8.5.5教程第十讲
  • Kotlin 极简小抄 P9 - 数组(数组的创建、数组元素的访问与修改、数组遍历、数组操作、多维数组、数组与可变参数)
  • 漏洞修复的两种核心方法
  • Chord Crossing_abc405分析与解答
  • 第21天-pyttsx3语音播放功能
  • js逆向练习 客户端的加密数据的逆向
  • 8.数据驱动的决策分析与可视化实践
  • Open3D 统计滤波器
  • RK3588 USB-OTG 功能使用记录
  • MAC系统安装node版本管理工具nvm
  • 条件随机场 (CRF) 原理及其在语义分割中的应用
  • 关于 Web 安全实践:4. 文件上传功能的风险分析与防护
  • 使用泛型服务基类简化Entity Framework对数据库访问逻辑
  • 基于JDBC的信息管理系统,那么什么是JDBC呢?什么又是DAO类?
  • Python输出与输入
  • windows服务器部署jenkins工具(二)
  • 在linux部署定时执行Kettle任务
  • 领麦微红外测温传感器:即热式饮水机测温应用
  • I.MX6U Mini开发板通过GPIO口测试光敏传感器
  • 无人机电子防抖技术要点概述!
  • 无人机集成毫米波雷达与双目视觉的融合感知系统深度解析
  • 全碳化硅功率模块开关瞬态特性及损耗研究
  • Java学习教程(附电子书资料50+册)
  • 多模态大模型
  • 将YOLO训练进程放至后台的方法-nohup
  • Oracle BUFFER CACHE内存不足的优化思路
  • 【信息系统项目管理师】第13章:项目资源管理 - 38个经典题目及详解
  • SEO关键词优化与长尾词布局
  • Powershell及命令行文章合集(不定期更新)