You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为存在大量异常值的IoT数据机器学习分类任务做数据准备

针对IoT不平衡故障预测LSTM预处理方案

关于是否删除含零值行

绝对不建议直接删除所有含零值的行,原因如下:

  • IoT数据集的零值大部分属于有效取值:比如传感器未检测到触发信号、设备处于待机状态时的采集值本身就是0,属于正常特征,删除会丢失大量有效信息
  • 你的数据集本身类别高度不平衡,故障样本(标签1)占比极低,盲目删行极有可能把本就稀少的故障样本全部删除,最终模型完全无法学习故障特征

零值正确处理方式

先区分零值类型再处理:

  • 如果是采集失败的占位零(可通过同一设备前后时刻的采集规律判断):不要用全局均值填充,可使用时序插值方式处理,比如ffill(前向填充)、线性插值、同设备同时段历史均值填充
  • 如果是正常有效零:直接保留即可

关于异常值处理

你提到75%的列分布和示例分布一致,这类长尾分布在IoT传感器数据中非常常见,不要直接将极端值判定为脏数据删除:
数据分布示例图

  • 大部分极端值大概率和故障强相关:故障发生前传感器读数往往会出现远超正常范围的波动,直接删除等于删掉了模型需要学习的核心故障特征

异常值正确处理方式

  • 先做关联统计:验证极端值出现的时间点和故障标签的相关性,如果极端值出现后的固定时间窗口内故障发生率显著升高,直接保留该类值作为强特征
  • 如果极端值是偶发采集误差:采用*截断(Capping)*处理,将超过99分位数/低于1分位数的取值统一替换为分位数值,既保留“取值异常”的特征,又避免极端值影响模型收敛

适配LSTM的额外预处理建议

  • 时序样本构造:按时间窗口滑窗构造LSTM输入,比如用过去N个时间步的采集数据预测未来M个时间步是否会发生故障,注意必须按时间拆分训练集/测试集,禁止随机拆分避免数据泄露
  • 不平衡适配:损失函数改用Focal Loss,或者为少数类设置更高的class_weight,也可对含故障的时序窗口做过采样/小噪声增强,提升模型对故障类的识别能力
  • 特征缩放:优先使用RobustScaler做标准化,相比普通标准化对极端值更友好,适配你当前的数据集分布

内容的提问来源于stack exchange,提问作者Omomaxi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:24:02