4. 实验数据探查与剖析实战
拿到一份原始实验数据,最忌讳的做法是直接套清洗脚本。清洗规则必须由数据本身的形态决定,而形态只能通过探查获得。本节以一份典型的材料实验记录为例,走完从统计摘要到异常初筛的完整剖析过程,目标是产出一份可指导后续清洗的"数据体检报告"。
先看统计摘要:建立数值直觉
假设我们拿到一份高温合金拉伸实验数据 tensile_raw.csv,共 12 列、约 480 行,每行是一次试样测试记录。字段包括 sample_id、batch、temperature_C、strain_rate、yield_strength_MPa、tensile_strength_MPa、elongation_pct、elastic_modulus_GPa、test_time_s、operator、instrument_id、remark。
第一步用 describe() 类统计看数值列。重点关注四类信号:一是 count 与总行数的差值,直接暴露缺失规模;二是 min/max 是否落在物理合理区间,例如屈服强度出现负值或 5000 MPa 这类量级,几乎可以判定为录入错误或单位混用;三是 mean 与 50%(中位数)的偏离程度,偏离大说明分布偏斜或存在极端值;四是 std 是否异常小,若某列标准差接近 0,可能是常量列或传感器卡死。
yield_strength_MPa count=452 mean=812.4 std=96.7
min=-15.0 50%=805.0 max=1180.0
elongation_pct count=468 mean=18.6 std=4.2
min=0.0 50%=18.9 max=41.5
temperature_C count=480 mean=650.2 std=0.8
min=648.0 50%=650.0 max=652.0
这三段摘要已经给出明确线索:yield_strength_MPa 缺失 28 条且存在负值;elongation_pct 缺失 12 条且最小值为 0,需确认是真实脆断还是占位符;temperature_C 标准差仅 0.8,说明该批次实验温度控制极稳,若后续清洗时误将其当作异常剔除,会破坏实验条件的一致性。
分布可视化:看清形状而非只看数字
统计量是压缩后的信息,分布图才能暴露形状。对 yield_strength_MPa 画直方图叠加核密度曲线,若出现明显双峰,往往意味着数据混合了两个批次或两种热处理状态。此时应按 batch 分组再画,若分组后各自单峰,则双峰来自批次差异而非测量噪声,清洗时不应简单合并。
对 elongation_pct 这类可能偏斜的指标,箱线图比直方图更高效:箱体给出四分位范围,须线外的点即候选异常。若某批次箱体整体下移且须线变短,说明该批次塑性偏低,属于工艺差异,应保留并标注,而不是当作离群点删除。
缺失模式图:区分随机缺失与结构缺失
缺失值不能只看数量,要看模式。用缺失矩阵图(行=记录,列=字段,有值浅色、缺失深色)可以快速识别三类模式:完全随机缺失表现为零散斑点;列缺失表现为整列深色,通常是该字段未采集或仪器未接入;块状缺失表现为某些行多列同时缺失,往往对应整次实验失败或记录中断。
在本例中,若 yield_strength_MPa 的缺失集中在 instrument_id=A03 的记录上,说明是设备通道问题,清洗策略应是按设备分组插补或标记,而非全局均值填充。若 remark 列大量缺失,则属于正常情况,因为备注本就非必填,不应触发告警。
异常值初筛:先标记,后裁决
异常初筛的目标不是删除,而是生成一份"待裁决清单"。常用三种互补方法:一是基于四分位距的 1.5×IQR 规则,稳健且不假设分布;二是基于 Z 分数的 3σ 规则,适合近似正态的指标;三是基于物理上下限的硬规则,例如屈服强度必须大于 0、伸长率不超过 100%。
三种方法结果取并集,再逐条回看原始记录。例如某条 yield_strength_MPa=1180 被 3σ 标记,但若该试样 temperature_C=648 且 batch=B07,而 B07 是低温强化批次,则 1180 可能是真实高值,应保留。反之,yield_strength_MPa=-15 无论用哪种规则都应判为无效,因为它违反物理下限。
flag_reason 列的明细表,记录每条候选异常命中的规则和数值,便于后续复核与追溯,而不是直接覆盖原值。把四类视图串成一次探查流程
实际操作中,四类视图不是孤立使用的。建议按"摘要→分布→缺失→异常"的顺序推进:先用统计摘要锁定可疑列,再用分布图确认形状与分组需求,接着用缺失矩阵判断缺失是否结构化,最后用异常规则生成候选清单。每一步的发现都会影响下一步的关注点,例如缺失矩阵暴露的设备分组,会直接改变异常检测的分组方式。
完成一轮探查后,应输出一份简明的数据体检报告,至少包含:各列缺失率与缺失模式、关键指标的分布形态与分组建议、候选异常清单及命中规则、以及针对每一类问题建议的清洗动作。这份报告就是后续清洗脚本的输入依据,也是实验数据可追溯性的第一道保障。
tensile_raw.csv 原样,确保任何清洗决策都能回溯到原始记录。