两个同事在人工智能实验平台上运行相同模型,结果不同,排查时先问“随机种子是不是一样”很常见。但只保存一个random_state数字,仍不足以说明两次实验使用了同一批数据、相同输入次序和相同划分设置。先把数据划分记录完整,后面的结果比较才有清楚的起点。

先读清参数的类型

scikit-learn的train_test_split文档说明,test_size使用小数时表示测试集比例,使用整数时表示样本数量;random_state可影响划分前的随机打乱,传入整数可用于多次调用的可复现输出。[1] 这些说明都有具体输入和参数背景,不能简化成“只要种子相同,任何两次实验都一样”。

在记录卡上写出输入身份

可以把一次实验的输入写成数据版本、样本标识清单、排序方式和读取时间。若数据经过筛选,再记下筛选条件及筛选后数量。这是本文提出的记录方法,并非该函数要求的文件格式。目的在于后来比较结果时,能够先回答“究竟分的是哪一批样本”。

下面是自拟例子:某个教学练习有100条编号记录,希望留20条测试样本。记录卡可以同时写下“计划测试数量20”和所用参数值及类型,并保存实际分配到两组的编号。这里的数字仅用于说明记录方式,不是任何真实数据集的推荐比例,也不是模型表现证据。

比例相同仍要检查样本是否相同

若下次练习增加了新记录,或者读入顺序改变,就不能只看表格里仍写着同一个比例和随机种子,便宣布划分完全一致。应核对实际输入与输出标识。记录实际样本归属还方便排查某条记录为何出现在测试集中,而不必从一份已经变化的数据文件重新猜测。

把其他开关一并保留

该文档还列出shuffle与stratify,并明确shuffle为False时stratify必须为None。[1] 实验记录可以保留这些参数的实际值以及采用原因。如果团队处理时间顺序、重复主体或其他有特殊关系的数据,应另行研究适合的评估设计,不能把一次随机划分当成通用方案。本文不为具体业务选择划分策略。

结果表与划分表通过版本关联

模型得分放在结果表,数据划分过程放在输入记录,两者使用同一实验编号关联。修改数据、参数或评估过程后,产生新的版本记录,不覆盖旧结果的依据。这样,当得分变化时,团队至少能先辨认变化来自哪里,再讨论模型是否真的进步。

参考来源:[1] scikit-learn,train_test_split API文档,2026年10月7日查阅,页面标示1.9.1。本文未运行模型或报告准确率;教学数字和记录卡为独立示例,实际项目应核对所安装版本。

信息来源

本文基于上述公开资料整理,未使用来源页面的图片、视频或嵌入媒体。