3. 实验数据质量诊断与清洗
实验数据在采集、传输、存储的每一个环节都可能被污染。传感器本身的电子噪声、环境温湿度变化引起的基线漂移、人工录入或自动采集造成的重复记录、以及偶发的极端异常值,都会让后续的异常发现模型把“脏数据”误判为“真异常”。因此,质量诊断与清洗不是数据预处理的可选项,而是异常发现工程的前置防线。本节围绕四类典型质量问题——噪声、漂移、重复、异常值——讲清如何识别、如何量化、如何清洗,并给出可落地的清洗策略设计方法。
一、四类质量问题的特征与识别指标
噪声表现为信号在真实值附近的高频随机波动,通常用滑动窗口标准差或高频能量占比来量化;漂移表现为信号均值随时间缓慢单向偏移,常用滑动均值斜率或分段均值差来检测;重复记录表现为同一实验对象、同一时间戳或同一工况下出现多条高度相似的记录,可用主键冲突检测或特征向量相似度(如余弦相似度大于0.99)来识别;异常值则是明显偏离整体分布的个别点,可用3σ准则、四分位距(IQR)或稳健Z分数初筛。
需要强调的是,噪声和异常值容易混淆:噪声是“整体波动大”,异常值是“个别点偏离远”。判断依据是看该点是否超出局部窗口的统计边界,而不是看全局方差。漂移与趋势也不同:漂移是“不该有的基线移动”,趋势是“物理过程本身的真实变化”,区分二者需要结合实验工况是否发生变化。
二、噪声识别与抑制
噪声识别的第一步是建立局部统计基线。对每个采样点,取前后各N个点(例如N=10)构成滑动窗口,计算窗口内标准差σ_local。若某点与窗口均值的偏差超过3σ_local,则标记为噪声候选点。注意这里用的是局部窗口而非全局方差,因为实验信号本身可能有大范围变化,全局方差会把真实变化误判为噪声。
抑制噪声常用滑动中值滤波和低通滤波。滑动中值滤波对脉冲噪声效果好,窗口长度取5或7;低通滤波(如巴特沃斯二阶,截止频率取采样率的1/10)适合连续高频噪声。示例:某温度通道采样率10Hz,原始信号在25.0℃附近波动±0.8℃,经窗口7的中值滤波后波动降至±0.2℃,且升温段的拐点位置未发生偏移,说明滤波未破坏真实趋势。
三、漂移检测与校正
漂移检测的核心是判断“均值是否随时间单向移动”。做法是把序列按时间分成若干段(如每100点一段),计算各段均值,再对段均值序列做线性回归,若斜率显著非零(p<0.05)且方向一致,则判定存在漂移。另一种更直观的方法是计算首段均值与末段均值之差,若超过2倍段内标准差,则提示漂移。
校正漂移常用分段去均值或差分法。分段去均值是把每段减去该段均值,适合工况稳定的实验;差分法是用相邻点差值替代原值,适合缓变漂移但会放大噪声。示例:某压力传感器在30分钟采集中心均值从101.2kPa缓慢升到102.6kPa,段内标准差0.15kPa,首末段均值差1.4kPa远大于2σ=0.3kPa,判定为漂移;采用分段去均值后,各段均值回到101.2kPa附近,段间差异降至0.1kPa以内。
四、重复记录合并
重复记录分两类:完全重复(所有字段相同)和近似重复(关键字段相同但个别字段有微小差异)。完全重复可直接按主键去重,保留第一条并记录删除条数。近似重复需要定义相似度:对数值型特征做归一化后计算余弦相似度,对时间戳判断是否在同一采样周期内。若相似度大于0.99且时间差小于一个采样周期,则视为重复。
合并策略有两种:保留首条(适合采集时间明确的场景)和取均值(适合重复记录代表同一物理量的多次测量)。无论哪种,都必须保留原始记录索引,写入清洗日志,便于回溯。示例:某实验批次出现3条时间戳相同、温度值分别为25.1、25.1、25.2的记录,按保留首条合并后保留25.1,日志记录“合并2条,来源行号1024-1026”。
五、异常值初筛与清洗策略设计
异常值初筛推荐组合使用IQR和稳健Z分数。IQR法:计算Q1、Q3,超出[Q1-1.5×IQR, Q3+1.5×IQR]的点标记为疑似异常;稳健Z分数:用中位数和MAD(中位数绝对偏差)替代均值和标准差,|0.6745×(x-median)/MAD|>3.5标记为疑似异常。两者取并集可降低漏检。
关键原则是:异常值初筛只做标记,不直接删除。因为实验中的“异常”可能是真实故障信号,直接删除会丢失最有价值的异常发现线索。正确做法是新增一列“异常标记”,把疑似异常点保留在数据中,由后续异常发现模型结合工况判断。清洗策略应写成可配置规则,例如:
清洗规则示例(YAML)
noise:
method: median_filter
window: 7
drift:
method: segment_demean
segment_size: 100
duplicate:
key: [timestamp, channel_id]
keep: first
outlier:
method: [iqr, robust_z]
action: mark_only
output_column: is_outlier_candidate
最后,清洗效果必须验证。建议输出清洗前后对比报告:噪声看滑窗σ是否下降且主峰未移位;漂移看分段均值差是否收敛;重复看记录数减少但关键统计量(均值、方差、极值)是否稳定;异常值看标记率与人工复核的一致率是否达到90%以上。只有验证通过的清洗策略,才能进入下一阶段的异常发现流程。