4. 数据预处理

传感器异常检测与降级融合的效果,往往不取决于模型有多复杂,而取决于进入模型的数据是否“干净、对齐、可比较”。多传感器系统中,不同传感器采样率不同、量纲不同、噪声水平不同,还可能出现丢包、跳变、漂移和时钟偏差。若跳过预处理直接融合,异常检测会把噪声当故障,把时间错位当突变,最终导致误报和降级决策失准。本节围绕缺失值处理、去噪、归一化、时间对齐与特征工程五个环节,给出可落地的处理流程与参数建议。

一、核心原理:预处理是“让数据可比、可信、可对齐”

预处理的目标可以概括为三件事:可比(不同量纲、不同量程的传感器映射到同一尺度)、可信(抑制噪声与野值,保留真实动态)、可对齐(把异步采样统一到同一时间基准)。异常检测对“突变”敏感,因此去噪不能过度平滑,否则真实故障会被抹掉;归一化必须基于训练集统计量,避免测试集信息泄漏;时间对齐要区分“插值”与“保持”,对开关量、状态量不能随意线性插值。

预处理顺序建议:时间对齐 → 缺失值处理 → 去噪 → 归一化 → 特征工程。若先归一化再对齐,插值会引入量纲误差;若先去噪再对齐,重采样会再次引入噪声。顺序错误会放大误差。

二、方法流程与关键参数

1. 缺失值处理。先区分缺失类型:随机丢包、传感器离线、超量程被剔除。短时缺失(≤3个采样点)可用线性插值或前向填充;长时缺失应标记为无效并进入降级逻辑,而不是强行填补。对连续量可用样条插值,对开关量用前向保持。建议增加“缺失掩码”通道,让模型知道哪些位置是补出来的。

2. 去噪。常用方法包括滑动平均、中值滤波、Savitzky-Golay 滤波、小波阈值去噪和卡尔曼滤波。滑动平均简单但会滞后;中值滤波对脉冲野值鲁棒;Savitzky-Golay 在保留峰值形状方面更好;卡尔曼滤波适合有系统模型的场景。参数上,窗口长度一般取 3~11,采样率越高窗口可略大,但不得超过故障特征时间尺度的 1/3。

3. 归一化。Min-Max 适合量程已知且无极端野值的场景;Z-Score 适合近似高斯分布;Robust Scaling 使用中位数和四分位距,对野值更稳健。多传感器融合中推荐 Robust Scaling,并把训练集的 median 与 IQR 保存为部署参数。

4. 时间对齐。以主传感器或统一时基为基准,采用最近邻、线性插值或重采样。对高频振动信号可先降采样再对齐;对温度等慢变量可用保持法。对齐后要检查时间戳单调性和最大偏差,通常要求对齐误差小于最小故障持续时间的 1/5。

5. 特征工程。在时域提取均值、方差、峰峰值、均方根、峭度、偏度;在频域提取主频、频谱能量、谐波比;在时频域用短时傅里叶或小波包能量。对异常检测,残差特征(实测值与模型预测值之差)和变化率特征往往比原始值更敏感。

多传感器数据预处理信号链 原始多源数据 温度/振动/电流/转速 时间对齐 重采样/插值/保持 缺失值处理 插值/填充/掩码 去噪 中值/SG/小波/卡尔曼 归一化 Robust/Z-Score 特征工程 时域统计 · 频域能量 · 时频小波 · 残差/变化率 特征矩阵 + 缺失掩码 + 时间戳 送入异常检测与降级融合模块 数据质量监控 缺失率 · 噪声方差 · 对齐偏差 关键参数建议 插值窗口 ≤3 点 · 中值窗口 3~11 · SG 阶数 2~3 · Robust 缩放用 median/IQR · 对齐误差 < 最小故障持续时间的 1/5 注意:归一化统计量只能来自训练集;开关量禁止线性插值;去噪窗口不得大于故障特征时间尺度。

三、案例/场景:电机振动与温度融合的预处理

某设备以 1 kHz 采集振动、10 Hz 采集温度、50 Hz 采集电流。振动信号含 50 Hz 工频干扰,温度存在偶发丢包,电流有脉冲野值。处理流程如下:

  1. 以 1 kHz 为统一时基,对温度和电流做线性插值与保持,生成对齐后的三路序列。
  2. 温度缺失点用前向保持填补,并生成缺失掩码;连续缺失超过 5 个点则标记为无效。
  3. 振动用 5 点中值滤波去除脉冲,再用 3 阶 Savitzky-Golay 平滑;电流用中值滤波。
  4. 三路均采用 Robust Scaling,保存训练集的 median 与 IQR。
  5. 提取振动 RMS、峭度、主频能量,温度变化率,电流均值与方差,组成特征向量。
# 预处理参数配置示例
align:
  base_rate: 1000          # 统一时基 Hz
  method: linear           # 连续量插值
  hold_for: [switch, state] # 开关量保持
missing:
  short_gap: 3             # 短缺失插值上限
  long_gap: 5              # 超限标记无效
denoise:
  median_window: 5
  sg_window: 7
  sg_order: 3
normalize:
  method: robust
  stats: train_only
features:
  time: [mean, std, rms, kurtosis, skewness]
  freq: [dominant_freq, band_energy]
  residual: true

四、误区与复盘

误区后果修正做法
先归一化再时间对齐插值引入量纲误差先对齐,再缺失处理,最后归一化
用全量数据统计量归一化测试集信息泄漏,指标虚高只用训练集 median/IQR,部署时冻结
去噪窗口过大真实故障被平滑掉,漏报窗口不超过故障特征时间尺度的 1/3
对开关量线性插值产生无意义中间状态开关量用前向保持或最近邻
长缺失强行填补伪造数据,误导融合标记无效并触发降级逻辑
复盘建议:每次预处理后,输出缺失率、噪声方差、对齐最大偏差三项质量指标,并与异常检测误报率联动分析。若误报集中在某段时间,优先检查该时段的对齐偏差与缺失掩码,而不是直接调模型阈值。
预处理不是“越干净越好”。异常检测需要保留故障引起的突变和趋势,过度去噪、过度插值都会削弱故障特征。所有处理参数应基于训练集确定,并在验证集上验证其对检测延迟和误报率的影响。

综上,缺失值处理、去噪、归一化、时间对齐与特征工程构成一条完整的信号链。顺序正确、参数有据、质量可监控,才能让后续的异常检测与降级融合建立在可信数据之上。