2. 批次数据采集与清洗实战
食品生产现场的批次数据往往散落在三个甚至更多系统中:MES 记录着投料、工序、设备与产量,LIMS 承载着理化与微生物检验结果,而配料间的称量复核、杀菌锅的温度手抄表、包装线的首件确认,仍大量存在于纸质记录或 Excel 台账中。这三类数据在时间粒度、编码规则、计量单位和质量水平上差异明显,直接合并分析几乎必然出错。本节的任务,是把它们抽取、对齐、修补、纠偏、统一,最终形成一张以“批次”为唯一主键、字段含义明确、可直接进入统计分析的批次数据集。
一、先明确目标数据集的结构
清洗不是盲目地“把脏数据变干净”,而是围绕分析目标反向定义字段。假设我们要分析“杀菌工序对成品微生物合格率的影响”,目标数据集至少需要:批次号、产品编码、生产日期、生产线、杀菌温度、杀菌时长、原料验收等级、成品菌落总数、检验结论。这张“字段清单”决定了要从哪些源抽取什么,也决定了缺失与异常的处理优先级——杀菌温度缺失的批次,比包装膜批号缺失的批次重要得多。
建议在动手前先写出一张字段映射表,明确每个目标字段的来源系统、源字段名、数据类型、单位、是否必填。这张表是后续所有清洗动作的依据,也是交接与复核的凭证。
二、多源抽取与批次主键对齐
三个来源的批次标识往往不一致:MES 用“20240612-A2-003”这样的工单批次号,LIMS 用样品编号“S240612031”,手工记录则可能只写了“6月12日 A2线 第三锅”。对齐的关键是找到共同的锚点——通常是“生产日期 + 生产线 + 班次/锅次”。
实操中可先在 MES 侧建立批次主表,再为 LIMS 与手工记录各建一张映射表,通过日期、线别、产品编码做多对一匹配。匹配后必须检查一对多冲突:例如同一锅次在 LIMS 中出现两个样品编号,需判断是平行样还是重复录入。这一步的产出是“批次主键—各源记录”的对应关系,任何无法匹配的记录都应单独列出待人工确认,而不是直接丢弃。
三、缺失值:先判断性质,再决定动作
缺失值处理最容易犯的错误是“一律填均值”。在食品批次数据中,缺失往往携带信息:杀菌温度为空,可能是记录漏填,也可能是该批次走了豁免工艺;菌落总数缺失,可能是未取样,也可能是检验未完成。因此第一步是分类:关键工艺参数缺失应回查原始记录或设备日志补录;检验结果缺失需确认是未检还是未出结果,未检批次在分析时应剔除而非插补;非关键描述字段缺失可保留空值并加标记列。
只有在确认缺失为随机发生、且该字段参与建模时,才考虑插补。例如同产品、同生产线、相邻批次的杀菌温度可用中位数参考,但必须在数据集中新增“是否插补”标志列,保证分析时可追溯。示例:某批杀菌温度缺失,回查设备 PLC 曲线后补录为 121.3 ℃,则标记为“设备日志补录”,而非“插补”。
四、异常值:工艺规则优先于统计规则
异常值识别应先建立工艺合理区间,再用统计方法辅助。以巴氏杀菌为例,工艺规定温度 72~75 ℃、时长 15~20 s,那么 7.2 ℃ 显然是小数点录入错误,而 78 ℃ 可能是真实超温,需要保留并标记为工艺偏差,因为它恰恰是分析对象。统计方法如 3σ 或 IQR 适合在工艺区间内进一步筛查离群点,但不能替代工艺判断。
实操建议对每个数值字段设置“硬约束”和“软约束”:硬约束(如温度必须为正、菌落总数不得为负)直接判为错误并回查;软约束(如超出历史 P1~P99 范围)标记为可疑,保留原值并新增异常标志列。这样既不丢失真实偏差信息,也避免错误值污染统计。
五、单位与编码统一
常见不统一包括:温度有 ℃ 与华氏度混录、时长有秒与分钟混录、菌落总数有 CFU/g 与 CFU/mL 混用、日期有“2024/6/12”与“2024-06-12”两种格式、产品编码有新旧两套。处理原则是:以目标数据集的字段定义为准,逐字段建立换算规则并记录换算系数;日期统一为 ISO 8601;产品编码通过编码映射表转换,映射不上的记录挂起。
单位换算必须可审计。例如手工记录中“杀菌 2 分钟”换算为 120 s,应在清洗日志中记录“原值 2 min → 120 s,系数 60”。切忌在源表中直接覆盖原值,应保留原始列与标准列并存。
六、一致性校验与交付
清洗完成后做三类校验:一是逻辑一致性,如检验结论为“合格”但菌落总数超过内控限值,需回查;二是数量一致性,成品入库数量不应大于投料折算的理论产量;三是唯一性,同一批次主键不得重复。校验不通过的记录进入“待确认清单”,由质量或生产人员判定后再决定修正或剔除。
最终交付的数据集应包含:标准字段表、清洗日志(缺失数、异常数、换算记录、挂起记录)、字段说明与单位定义。下面是一份可直接参考的清洗日志字段示例:
| 字段 | 说明 | 示例 |
|---|---|---|
| 批次主键 | 统一后的批次唯一标识 | 20240612-A2-003 |
| 字段名 | 发生清洗动作的目标字段 | 杀菌温度 |
| 问题类型 | 缺失 / 异常 / 单位 / 重复 | 缺失 |
| 原值 | 源数据原始内容 | 空 |
| 处理动作 | 补录 / 换算 / 标记 / 挂起 | 设备日志补录 |
| 处理后值 | 进入数据集的值 | 121.3 |
| 处理人/时间 | 责任与可追溯信息 | 张三 / 2024-06-13 |
完成上述步骤后,这张批次数据集才真正具备分析价值:每一行对应一个可追溯的批次,每一个数值都有明确的单位与来源,每一处修补都留有记录。后续的工序能力分析、合格率对比、参数相关性研究,都建立在这一份干净且可审计的数据基础之上。