第3章:数据采集与预处理——从传感器到可靠分析的第一步

大家好,我是你们的老朋友。今天咱们聊聊数据采集与预处理。说实话,这可能是整个课程里最“枯燥”但又最关键的环节。为什么?因为数据质量决定了分析结果的上限。你模型再牛,算法再花哨,喂进去的是垃圾,出来的只能是垃圾。我在项目里见过太多这样的案例了。

3.1 传感器数据采集策略

先说说采集策略。很多人觉得,传感器嘛,接上就完事了。其实没那么简单。

采样频率怎么定?

我个人习惯遵循奈奎斯特定理——采样频率至少是信号最高频率的两倍。但实际项目中,我通常会留3-5倍的余量。为什么?因为真实信号往往有噪声,留点余量好做滤波。

同步采集 vs 异步采集

  • 同步采集:所有传感器在同一时刻采样。适合需要分析多传感器间相位关系的场景,比如振动分析。
  • 异步采集:各传感器独立采样。成本低,但后续做时间对齐比较麻烦。
我的经验:做疲劳寿命预测时,我坚持用同步采集。虽然贵一点,但后期省心。异步采集做时间对齐,误差累积起来会让你怀疑人生。

数据存储策略

嗯,这里要注意。高频采集会产生海量数据。我建议采用“边缘计算+云端存储”的混合模式:

  • 边缘端:做初步特征提取,只存关键特征
  • 云端:存原始数据,但只保留关键时段

3.2 数据清洗——别让脏数据毁了你的分析

数据清洗,说白了就是“去伪存真”。我接手过一套轴承寿命数据,前前后后花了三周清洗,真正分析只用了一天。你想想看,清洗有多重要。

3.2.1 缺失值处理

缺失值怎么来的?传感器掉线、通信丢包、存储故障……原因多了去了。

处理方法:

方法 适用场景 注意事项
删除法 缺失比例<5%,且随机缺失 小心破坏时间序列的连续性
均值/中位数填充 数据波动不大 会降低方差,影响后续分析
前向填充 时间序列数据 适合缓慢变化的信号
插值法 数据有趋势性 线性插值最简单,样条插值更平滑
模型预测 缺失比例较高 计算量大,但效果最好
避坑指南:我曾经用均值填充处理一组振动数据,结果把故障特征给填没了。后来才意识到,振动信号的非平稳特性决定了均值填充根本不适用。从那以后,我对时间序列数据一律用插值法。

3.2.2 异常值处理

异常值分两种:真异常和假异常。真异常是设备真的出问题了,假异常是传感器抽风了。怎么区分?看上下文。

常用检测方法:

  • 3σ原则:超出均值±3倍标准差的值视为异常。适合正态分布数据。
  • 箱线图法:用四分位距(IQR)判断。鲁棒性更好,不受极端值影响。
  • 移动窗口法:对时间序列数据,用滑动窗口计算局部均值和标准差。
# Python示例:移动窗口异常检测
import numpy as np
import pandas as pd

def detect_anomalies_moving_window(data, window=50, threshold=3):
    rolling_mean = data.rolling(window=window).mean()
    rolling_std = data.rolling(window=window).std()
    z_scores = (data - rolling_mean) / rolling_std
    return np.abs(z_scores) > threshold

# 使用示例
data = pd.Series([...])  # 你的传感器数据
anomalies = detect_anomalies_moving_window(data)
我的习惯:发现异常值后,先别急着删。我会标记出来,结合设备日志一起看。有一次,一个“异常值”其实是设备开始出现微裂纹的信号——差点被我当噪声删掉。

3.3 数据标准化与归一化

为什么要做标准化?说白了,不同传感器的量纲不一样。温度是0-100℃,压力是0-10MPa,振动加速度是0-50g。你把这些数据直接扔进模型,量级大的特征会主导结果。

3.3.1 归一化(Min-Max Scaling)

把数据映射到[0,1]区间。公式很简单:

X_norm = (X - X_min) / (X_max - X_min)

适用场景:

  • 数据分布有明确边界(如温度、压力)
  • 需要保留原始数据的相对关系
  • 神经网络等对输入范围敏感的模型
注意:归一化对异常值非常敏感。如果数据里有极端值,会把正常数据压缩到很小的区间。我建议先做异常值处理,再做归一化。

3.3.2 标准化(Z-score标准化)

把数据转换成均值为0、标准差为1的分布:

X_std = (X - μ) / σ

适用场景:

  • 数据近似正态分布
  • 存在异常值(标准化对异常值鲁棒性更好)
  • 主成分分析(PCA)、聚类等算法

3.3.3 怎么选?

场景 推荐方法 原因
数据有明确边界 归一化 保留原始比例关系
数据分布未知 标准化 鲁棒性更好
存在异常值 标准化 不受极端值影响
神经网络输入 归一化 加速收敛
PCA/聚类 标准化 消除量纲影响

知识体系总览

下面这张图,是我梳理的本章知识结构。建议你保存下来,做项目时对照着看。

数据采集与预处理 传感器数据采集策略 采样频率(奈奎斯特定理) 同步采集 vs 异步采集 边缘计算+云端存储 数据清洗 缺失值处理 删除法 / 填充法 / 插值法 异常值检测(3σ/箱线图/移动窗口) 标准化与归一化 Min-Max归一化 Z-score标准化 适用场景对比 核心目标:确保数据质量,为后续分析奠定基础 采集策略决定 数据质量的上限 清洗决定 分析结果的可靠性 标准化决定 模型的收敛速度

好了,这一章的内容就到这里。数据采集与预处理,听起来基础,但做扎实了,后面的分析会顺风顺水。记住一句话:花在数据清洗上的时间,永远不会白费。


专注资料整理