AI编程的数据分析代码投稿前checklist

AI时代的科研数据分析guideline-1783931886735.webp

过去,科研数据分析程序通常由研究者自己逐行编写,因此开发过程本身就是理解算法的过程。而今天,大语言模型已经能够帮助我们快速完成大量代码。从读取数据、图像处理,到机器学习模型和统计分析,很多程序只需要几轮对话就能运行起来。这是科研工作的一次巨大进步,但也带来了一个新的问题:

程序能够运行,并不意味着算法正确;得到结果,也不意味着结论可靠。

未来,评价一个科研数据分析程序,重点不应该是”代码是不是 AI 写的”,而应该是研究者是否真正理解程序中的关键决策,并能够证明分析结果值得信任。因此,我觉得有一些问题是需要在利用AI构建科研数据分析程序是要认真考虑的。

第一部分:整个 Workflow

1. 原始数据是什么?

  • 数据来自哪里?
  • 数据长什么样?
  • 包含哪些信息?
  • 为什么这些数据能够回答你的科学问题?

2. 数据经过了哪些关键步骤?

  • 每一步在做什么?
  • 为什么需要这一步?
  • 如果省略这一步,会产生什么影响?

这里描述的是数据如何一步步变成最终结果,而不是程序调用了哪些函数。

3. 哪些地方进行了关键决策?

例如:

  • 数据筛选
  • 阈值判断
  • 分类
  • 配准
  • 分割
  • 曲线拟合
  • 异常值剔除

对于每一个影响结果的决策,都应该能够回答:为什么这样做?依据是什么?

4. 最终输出什么?

程序最终产生了什么?

例如:

  • 数据表
  • 图像
  • 统计结果
  • 模型参数
  • 分析报告

最好能够提供典型输出示例。

5. 为什么相信这些结果?

程序采取了哪些措施保证可靠性?例如:

  • Quality Control
  • 重复实验
  • 参数记录
  • 与已有方法比较
  • 误差分析
  • 人工抽查

6. 它什么时候不能用?

任何程序都有适用范围。应该明确说明:

  • 哪些数据适用?
  • 哪些数据不适用?
  • 哪些情况下结果可能失效?
  • 已知局限有哪些?

第二部分:核心分析模块

对于 Workflow 中影响科研结论的核心模块(例如机器学习、图像分割、配准、曲线拟合、优化算法等),建议进一步回答下面几个问题。

1. 为什么选择这个方法?

它解决什么问题? 为什么采用它,而不是更简单或更常见的方法?

2. 它是如何工作的?

至少能够说明:

  • 输入是什么?
  • 输出是什么?
  • 基本原理是什么?
  • 哪些参数会影响结果?
  • 这些参数为什么这样设置?

如果参数只是”AI 默认写的”,那么程序很可能还没有真正理解。

3. 如何证明它有效?

例如:

  • 与已有方法比较
  • 客观评价指标
  • 独立测试数据
  • 重复实验验证

如果是机器学习模型,还应说明:

  • 训练数据来自哪里?
  • 数据如何划分?
  • 如何避免过拟合?

4. 如果它出错怎么办?

任何算法都会失败。因此还应说明:

  • 如何识别失败结果?
  • 是否存在低置信度判断?
  • 是否需要人工复核?
  • 错误结果如何处理?

写在最后

如果把前面所有问题归纳成一句话,我认为其实只有一个核心问题:

程序中的每一个关键决策,你是否都能够解释它为什么存在,并说明为什么值得相信?

未来,AI 会越来越擅长生成代码,甚至能够自动设计整个数据分析流程。但科研工作的核心不会改变——真正需要负责的,从来不是代码,而是结论。AI 可以帮助我们实现算法,却不能替我们理解算法;可以帮助我们生成结果,却不能替我们证明结果可信。

我希望,这份清单能够成为 AI 时代科研数据分析程序的一份长期自检指南。无论使用什么编程语言、什么软件框架、什么 AI 模型,只要程序最终服务于科研结论,它都应该能够回答这些问题。

参考文献

  1. Software engineering for scientific big data analysis, GigaScience, 2019.
  2. Principles for data analysis workflows, PLOS Computational Biology, 2021.
  3. Applying the FAIR Principles to computational workflows, Scientific Data, 2025.