SCI投稿准备 · 2026/10/22
机器学习论文调参用了测试集,稿件怎样如实处理?
调参看过测试集后,应承认其参与模型选择,保留日志并用未接触数据重做最终评估。
论文写“在独立测试集上取得最佳准确率”,补充材料却显示团队反复查看测试集结果,逐步调整网络深度、学习率和数据增强。此时测试集已经参与模型选择,最终数字不能再被解释为一次未接触数据的客观评估。投稿前应如实记录何时、为哪些决定查看过测试集,把模型开发与最终评估的边界重新画清。
先翻实验日志,查测试集从哪一天开始被查看。列出训练集、验证集、测试集的来源、患者或样本分组层级、固定日期,以及每轮调参使用了哪套数据。测试集若仅在最后运行一次,较容易维持独立;若看过测试指标后改动结构、特征、早停轮次或预处理,即使没有对测试样本调用拟合函数,也发生了选择性利用。scikit-learn官方文档提醒测试数据不应参与模型决策,数据泄漏会使性能估计过于乐观。
发现误用后,保留原日志;给测试集改个名字,并不会让它重新变独立。可将原测试集明确转为模型选择数据,另找未参与决策的评估集;若无法增加数据,可规划合适的嵌套验证,并如实说明局限。新的最终评估前冻结模型版本、超参数和评价指标。不能在新集上再次反复调到满意,否则边界又会移动。
方法与结果要让读者看见两条轨迹:开发阶段试过哪些主要方案、最后版本依据什么选出;真正未用于选择的数据上表现如何。若原文已经有被反复查看的测试结果,可标为探索性结果,并与新评估分开。报告独立评估样本数、事件数、区间及失败条件,不把“最高一次”当最终成绩。对重复数据或同一患者多次扫描,也要按正确单位隔离,否则另有样本重叠问题。
若研究只剩一套数据且无法追加独立评估,仍可发表方法探索,但结论要收窄:报告内部选择过程和性能不确定性,避免写“经独立测试证实”。可用预先固定的嵌套验证流程估计泛化,但不要声称它等同另一个医院的外部验证。旧库存文章讨论在测试集上挑诊断阈值,本篇处理网络结构与训练超参数的多轮决策,两者都需要清楚的资料角色。
投稿检查还包括代码。训练脚本、调参日志和图表的数据来源应对得上;若论文写最终测试只运行一次,实验跟踪系统却有几十次测试记录,就应修正文稿。记录每次修改对应的验证依据,以及确定最终模型的日期。联合团队常有成员各自看测试集,不能只问主模型作者是否使用。项目负责人应从完整实验记录确认信息流。
交稿前选一个后来被改掉的超参数,沿实验日志追到使其改变的性能表。如果那张表来自所谓测试集,就在方法中承认其角色并重做最终评估。诚实的性能估计也许比最高数字低,却能让读者理解模型在未见数据上的真实可信范围。