PAYATHON 2026

传感器异常检测中,能否删除读数恒定的传感器特征?

技术老齐

恒定读数可以有条件地移出模型,但仍需监测该传感器

传感器读数一直为 100,要判断能否将其从模型中删除,需要弄清读数为何恒定,以及希望发现什么异常。恒定读数不一定是噪声。

如果该传感器在相关正常工况下本应保持 100,可以考虑将其移出某个模型的输入,同时保留独立监测规则。如果它本应随运行状态变化,却始终停在 100,这可能是传感器卡死、数据未更新或采集链路异常的线索。

仅凭当前描述,无法确定删除后对模型的实际影响,还需要结合传感器含义、模型类型和验证数据判断。

先区分固定值、卡死和噪声

建议先核对以下情况:

  • 正常固定值:设备运行时,这个测量值按设计就应基本保持不变。
  • 工况造成的恒定值:当前数据只覆盖一种运行状态,换到其他状态后读数可能变化。
  • 异常固定值:设备状态已经变化,传感器仍持续输出同一个数值。
  • 数据处理造成的固定值:缺失值被填成 100、读数被截断,或者系统重复发送旧数据。

还应确认 100 是实际测量值还是控制设定值。两者保持恒定时,对异常检测的意义可能不同。

噪声通常指测量中的无关波动。把恒定值直接归为噪声,可能丢掉故障线索。温度突然升高也可能是真实异常,不能仅因它是尖峰就将其平滑掉。

删除后为什么可能影响模型

训练数据中完全恒定的特征无法体现样本之间的取值差异,通常难以帮助模型区分这些训练样本。但它仍可能对发现未来异常有用。

例如,sensor 3 在正常运行时始终为 100,故障时变成其他值。如果删除该特征,又没有额外监测,系统就失去了这条异常证据。

模型类型也会影响结果。基于重构误差的模型可能通过该通道偏离正常值来发现异常;其他模型未必能有效识别训练范围以外的变化。因此,恒定特征对模型的影响不能一概而论。

如果决定删除特征,需要同步调整预处理,重新训练并验证模型。不能直接在已有模型的预测输入中少传一列。

如何兼顾所有传感器的监测

可以把主要异常模型与传感器检查规则结合起来。

对于正常情况下应保持固定值的传感器,检查读数是否偏离参考值、是否缺失或长时间未更新。对于正常情况下应变化的传感器,则需要结合运行状态和时间窗口检查是否卡死。

下面的 Python 示例只演示固定值偏离检查。参考值和容差应根据设备要求或正常数据确定,不能从问题描述中推定:

import math


def check_fixed_sensor(value, reference, tolerance):
    if not math.isfinite(reference):
        raise ValueError("reference must be finite")
    if not math.isfinite(tolerance) or tolerance < 0:
        raise ValueError("tolerance must be finite and non-negative")

    if value is None or not math.isfinite(value):
        return {"status": "missing_or_invalid"}

    deviation = abs(value - reference)
    return {
        "status": "out_of_range" if deviation > tolerance else "ok",
        "observed": value,
        "reference": reference,
        "deviation": deviation,
    }

只有确认 sensor 3 正常时应为 100,才能把 100 作为 reference。这段规则无法单独发现“持续重复一个看似正常的旧读数”,还需要检查采集时间、更新时间或其他状态信息。

温度升高而压力不变,该如何解释

“温度突然升高,压力没有变化”可以用来描述观察到的现象。是否属于异常,取决于当前工况下两者是否应存在稳定关系。

可以先对齐采样时间,检查设备正常运行时温度与压力的关系,同时考虑响应延迟。如果压力通常晚于温度变化,两者在同一时刻的变化不同步未必代表故障。

异常报告应尽量记录发生时间、实际读数、参考范围、相关传感器表现,以及触发告警的规则或模型分数。如果使用 SHAP 等特征归因方法,其结果解释的是特征如何影响模型输出,不能直接证明机器故障的物理原因。

用对照验证决定是否删除

在相同的时间划分和评价标准下,比较保留恒定特征与删除恒定特征两种方案。预处理参数和恒定特征名单应从训练集确定,验证数据应覆盖后续时间段及相关工况。

重点检查已知故障是否漏报、误报是否增加,以及该传感器偏离正常值时系统还能否告警。如果缺少真实故障样本,可以构造偏离固定值、读数卡死或数据中断等测试,但这些测试只能检验对应情形,不能证明真实故障检测效果。

不必将每个传感器都接入同一个模型。保留原始数据、明确监测方式,并验证异常能否被发现,才能判断是否适合从某个模型中删除该传感器。

备注:内容仅供参考。