技能 数据科学 计算机科学论文可复现性指南

计算机科学论文可复现性指南

v20260724
csj-reproducibility
本指南为投稿至《计算机科学》期刊的作者提供全面的实验可复现性规范。从环境依赖锁定(如Dockerfile、随机种子)到数据防泄露,详细指导如何构建一个完整的复现包,确保审稿人能从原始数据出发,一键复现论文的所有主要结果。
获取技能
376 次下载
概览

《计算机科学》可复现性与实验可重复

本技能帮你把《计算机科学》(Computer Science, 简称 JSJKX) 稿件的实验做到可复现。本刊为单盲审稿,虽未见 公开的独立 artifact 徽章评审制度(待核实,见 resources/official-source-map.md),但可复现性直接影响外审 专家对方法可信度的判断,也为录用后可能的补充材料打基础。目标:他人能从原始数据一键复现你的主表/主图。

提醒:本刊 Computer Science 是期刊(journal),非会议。

一、可复现的三个层次

  1. 可重复(repeatable):你自己在同环境能复现同结果(固定种子/版本)。
  2. 可复现(reproducible):他人用你的代码+数据能得到一致结果。
  3. 可推广(replicable):他人用独立实现/新数据能得到一致趋势。 外审最看重前两层,第三层加分。

二、固定环境与随机性

  • 环境:给出 requirements.txt / environment.yml / Dockerfile,锁定语言、库、CUDA/硬件版本。
  • 随机种子:固定所有随机源(框架、numpy、数据加载、shuffle);报告多次运行的均值±方差。
  • 配置:超参写入 configs/,与论文表格一一对应,避免"论文一套、代码另一套"。

三、数据划分与污染防范

  • 训练/验证/测试划分脚本随包提供;调参仅用验证集,测试集仅最终评估一次。
  • 数据泄漏:特征工程、标准化统计量只在训练集上拟合;时间序列按时间切分。
  • 污染:若用预训练模型/外部语料,说明其与测试集是否重叠,评估潜在泄漏。

四、复现包结构

repro/
├── README.md      # 一键复现步骤、预期结果、耗时
├── env/           # 依赖与 Dockerfile
├── data/          # 数据说明+获取脚本(大数据外链+校验和)
├── src/           # 方法与基线
├── scripts/       # run_all.sh:数据→主表/主图
├── configs/       # 超参与种子
└── results/       # 预期输出与日志

scripts/run_all.sh 应能在干净环境从原始数据复现论文主结果。

五、数据与模型外链

  • 大体量数据/模型用可长期访问的仓库(机构库、Zenodo 等)外链,给校验和与访问日期。
  • 敏感数据提供合规脱敏子集或申请流程;正文注明获取方式与限制。

六、在论文中报告可复现性

  • 实验节说明:硬件、软件版本、种子、运行次数、数据获取方式。
  • 提供复现包链接(若单盲下匿名不是强制,可直接给仓库;仍建议稳定长期链接)。
  • 每张主表/主图都能追溯到 scripts/ 里的具体命令。

七、自查清单

  1. 是否锁定环境(依赖/版本/硬件)?
  2. 随机种子是否固定、是否报告多次运行方差?
  3. 数据划分脚本是否随包、是否无泄漏无污染?
  4. 复现包是否含 run_all.sh,能从数据到主表/主图?
  5. 大数据/模型是否外链+校验和?敏感数据是否合规?
  6. 论文是否报告软硬件、种子、运行次数、数据获取?
  7. 主表/主图是否都能追溯到脚本命令?

八、输出格式

【CSJ 可复现审计】
环境锁定:依赖/版本/硬件 <✓/✗>
随机性:种子固定[✓/✗] 多次运行方差[✓/✗]
数据:划分脚本[✓/✗] 无泄漏[✓/✗] 无污染[✓/✗]
复现包:run_all.sh 一键复现 <✓/✗>
外链:数据/模型+校验和 <✓/✗>;敏感数据合规 <✓/✗>
论文报告:软硬件/种子/获取方式 <✓/✗>
结论:<可复现 / 需补:列点>

本刊 artifact/徽章制度现状为"未见独立徽章"(待核实),以官网《投稿须知》为准。

九、复现的粒度与文档

一个能被外审信任的复现包,不只是"把代码丢上去"。README 应写清:所需硬件与软件版本、安装步骤、数据获取 与预处理、一键复现命令、每条命令对应论文的哪张表/图、预期数值与允许的浮动范围、以及大致运行耗时。文档 越具体,外审(单盲,知你身份)越容易验证,也越少来回追问。为《计算机科学》(Computer Science) 投稿时,把这些 写在复现包 README 与论文实验节,两处一致。

十、常见不可复现陷阱

以下问题在计算机各方向反复出现:随机种子未固定导致每次结果不同;库/驱动版本升级致数值漂移;数据预处理 脚本缺失,他人无法从原始数据出发;测试集在调参中被"偷看"造成乐观偏差;只报最好一次而非多次均值;硬件 差异(GPU 型号)未说明。逐项排查这些陷阱,是让本刊外审相信你结果稳健的前提。

十一、可复现与可用性、补充材料的衔接

可复现性是代码/数据可用性(见 csj-artifact-evaluation)的基础:先做到可复现,再对外提供可用性声明与稳定 链接。复现所需但不宜进正文的完整超参、环境清单、扩展实验,放附录或补充材料(见 csj-supplementary)。录用 后,把复现包与补充材料一并整理,供 csj-camera-ready 阶段最终提交。三者衔接顺畅,可复现性才真正落地。

十二、算力与规模的诚实报告

不同作者的算力条件差异很大,复现的现实门槛也不同。为《计算机科学》(Computer Science) 投稿时,应诚实报告 训练/推理所需的算力(GPU 型号与数量、显存、训练时长)与数据规模,让读者预估复现成本。若完整复现代价高昂, 可额外提供一个小规模可快速复现的子任务或子数据集,让审稿人在有限资源下验证方法的核心行为。这种"分层 复现"既尊重现实约束,又不牺牲可验证性,是负责任的可复现实践。

十三、复现声明模板

在论文实验节可放一段简短的复现声明,示例:

【复现说明】实验在 <GPU 型号 x N> 上完成;代码见 <稳定链接>(commit <hash>,<许可>);
数据为 <公开数据集[引用] / 受限数据(申请方式)>;固定随机种子 <seed>,结果为 <k> 次运行均值±方差;
执行 scripts/run_all.sh 可从原始数据复现表 1-表 N 与图 1-图 M,预计耗时 <t>。

该声明与复现包 README 内容一致,是外审快速建立信任的抓手。

信息
Category 数据科学
Name csj-reproducibility
版本 v20260724
大小 6.89KB
更新时间 2026-07-28
语言