第三章 模型卡片数据准备:数据来源、数据规模、数据预处理、数据质量评估
好,咱们进入第三章。数据准备这块,说实在的,是模型卡片里最容易被低估的一环。我见过太多团队,模型结构设计得漂漂亮亮,结果数据一塌糊涂,最后卡片评审时被怼得哑口无言。嗯,咱们今天就把这块掰开揉碎了讲清楚。
3.1 数据来源:你得说清楚数据从哪来的
数据来源这部分,说白了就是给数据「验明正身」。你不能只说「我们从网上爬了数据」,这太模糊了。我个人习惯是把来源拆成三个维度来写:
- 原始出处:具体是哪个网站、哪个数据库、哪个传感器?
- 采集方式:是API调用、爬虫抓取、还是人工标注?
- 时间范围:数据是什么时候采集的?过期数据会严重影响模型效果。
举个例子,我之前做过一个医疗影像项目,数据来源部分我是这么写的:
数据来源:XX医院PACS系统(2018-2022年)
采集方式:DICOM协议导出,经脱敏处理后使用
时间范围:2018年1月 - 2022年12月
补充说明:所有数据均已获得伦理委员会批准(批号:IRB-2022-018)
你想想看,如果评审专家看到这样的描述,是不是心里就有底了?
3.2 数据规模:别光说「很大」,要量化
数据规模这块,我见过最离谱的写法就是「我们用了大量数据」。大量是多少?100条还是100万条?
我建议至少包含以下几个指标:
- 总样本量:训练集、验证集、测试集分别多少
- 特征维度:有多少个特征,每个特征的类型是什么
- 类别分布:如果是分类任务,每个类别的样本数
- 数据平衡性:有没有严重的类别不平衡问题
这里我放一个我之前项目里的实际数据规模表,你可以参考:
| 数据集 | 样本数 | 特征数 | 正样本占比 | 负样本占比 |
|---|---|---|---|---|
| 训练集 | 85,432 | 128 | 23.5% | 76.5% |
| 验证集 | 10,679 | 128 | 23.1% | 76.9% |
| 测试集 | 10,681 | 128 | 23.3% | 76.7% |
看到没?正样本只有23%左右,这就是个典型的类别不平衡问题。如果你不写出来,别人还以为你的数据是完美平衡的。
3.3 数据预处理:这一步决定了模型的天花板
数据预处理,说白了就是「把原材料加工成能用的食材」。我习惯把预处理步骤画成流程图,这样评审专家一眼就能看明白。
每个步骤我都建议写清楚具体方法。比如:
- 缺失值处理:是用均值填充、中位数填充,还是直接删除?
- 异常值检测:用的是3σ原则还是IQR方法?
- 特征标准化:是Min-Max归一化还是Z-score标准化?
我记得有一次评审,对方问我:「你们缺失值怎么处理的?」我说「均值填充」。他又问:「为什么用均值而不是中位数?」我当时就愣住了。从那以后,我每个预处理步骤都会写清楚选择理由。
核心原则:预处理步骤要可复现。别人拿到你的数据,按照你写的步骤走一遍,应该能得到一模一样的结果。
3.4 数据质量评估:别等模型崩了才后悔
数据质量评估这块,很多人会忽略。我刚开始做模型卡片时也觉得没必要写,直到有一次模型上线后疯狂报错,查了半天发现是训练数据里有大量重复样本。
我建议从以下几个维度评估数据质量:
- 完整性:缺失值的比例是多少?有没有整列都是空值的情况?
- 一致性:同一字段的格式是否统一?比如日期字段,有的写「2023-01-01」,有的写「2023/01/01」。
- 准确性:数据有没有明显的错误?比如年龄字段出现「-5」这种值。
- 唯一性:有没有重复样本?重复率是多少?
- 时效性:数据是否过时?比如用2019年的数据训练2023年的模型。
这里我放一个数据质量报告的示例:
数据质量评估报告
----------------
完整性:缺失值占比 2.3%(主要集中在字段C和字段E)
一致性:日期格式统一率 99.8%(已修复剩余0.2%)
准确性:异常值占比 0.5%(已通过IQR方法识别并处理)
唯一性:重复样本占比 0.1%(已去重)
时效性:数据覆盖 2020-2022年,符合模型应用场景
你可能会问:「这些指标写到什么程度算合格?」我个人经验是,缺失率超过5%就要警惕,重复率超过1%必须处理,异常值一定要说明处理方式。
3.5 数据准备部分的常见问题
最后,我总结几个数据准备部分的高频问题,你在写模型卡片时可以对照检查:
- 问题一:数据来源描述过于模糊,没有具体出处和时间范围
- 问题二:数据规模只写总数,没有分训练/验证/测试集
- 问题三:预处理步骤只列方法,不写选择理由
- 问题四:数据质量评估只给结论,没有具体数据支撑
- 问题五:忽略了数据隐私和合规性说明
嗯,数据准备这部分就讲到这里。记住一句话:模型卡片里的数据描述,不是为了凑字数,而是为了让别人能完全复现你的工作。你写得越清楚,别人对你的信任度就越高。