压力模型结果.md 6.9 KB

7/8/9 号机压力泛化模型结果(机组相对 + 周期相对特征)

本实验重构于 models/generalized/(压力算法与压力模型)+ models/common/(公共层)。 3 小时模型已用新代码完整复现,指标与本文件完全一致(见 models/results/verification/verification_report.json)。 压力算法输出位于 models/results/pressure/,训练样本位于 models/datas/pressure/,模型位于 models/datas/artifacts/pressure/。

目标:把 7/8/9 号机数据全部纳入,用机组相对特征训练共享压力模型,解决原全量模型“7 号机正常窗口被大量误报”的跨机组问题。

当前版本:generalized_cycle_relative_v2(在 v1 机组相对特征基础上,加入扫描器口径的周期/近期相对与趋势形态特征)。

一、方法

1. 特征演进

v1(已弃用):去掉绝对油压,只用窗口内相对 + 机组归一化(oil_*_z)。

v2(当前):v1 基础上加入周期/近期相对特征,共 22 维:

  • 窗口内相对:oil_last_relative_to_window、oil_range_rel、oil_slope_rel、oil_min_dev、oil_max_dev、oil_low_ratio_mean、oil_low_low_ratio_mean、running_coverage_mean、running_coverage_min
  • 周期/近期相对(新增):oil_rel_cycle_mean/min/last(窗口油压 / 周期基线 − 1)、oil_rel_recent_mean/last(窗口油压 / 近 24h 基线 − 1)、oil_slope_rel_cycle、oil_decline_hours、oil_drawdown_cycle、oil_range_rel_cycle
  • 机组归一化:oil_mean_z、oil_min_z、oil_last_z、oil_slope_z

周期基线按扫描器口径计算:周期前 3 个自然日每日油压中位数,再取其中位数;近期基线用窗口前 24 个有效小时的稳健基线。二者都只用窗口之前/周期开始的数据,无泄漏。

特征重要度(3h v2)显示周期相对特征主导:

特征 重要度
oil_rel_cycle_min 46.77%
oil_drawdown_cycle 22.66%
oil_rel_cycle_mean 10.25%
oil_rel_cycle_last 8.24%
其余 18 维合计 12.08%

2. 机组基准

机组 median/MAD 只用该机组 train 划分的正常窗口计算,存 models_*/pressure_unit_baselines.json。仅用于 oil_*_z。训练正常窗口少于 24 个或 MAD=0 直接报错。

3. 数据与切分

  • 窗口:3 小时与 6 小时各一套;标签:重叠即异常(含 1 小时“轻微”阶段,用前后小时补足窗口,不做过渡窗口降权)。
  • 数据来源:复用 models/datas/hourly/pks_hourly_full.csv(--hourly-csv,不查库);阶段来源 models/results/pressure/润滑油压力小时阶段段.csv。
  • 切分:6.5 / 2 / 1.5,seed 20260921,事件组整体不拆,按(机组、标签)分层,并保证每机组 train 都有正常事件组。

二、数据范围

版本 候选(正常/异常) train validation test 事件组泄漏
3h 13,805(12,789/1,016) 9,095(8,439/656) 2,457(2,256/201) 2,253(2,094/159) 0
6h 13,710(12,507/1,203) 8,646(7,868/778) 2,841(2,596/245) 2,223(2,043/180) 0

异常来源:8 号机 986、7 号机 24、9 号机 6(3h)。

三、训练

| 版本 | 采样 | 轮数 | 早停 | 最佳轮次 | 最佳验证 logloss | |---|---|---|---:|---|---:|---:| | 3h | --all-normal | 请求 800 | 151 轮 | 101 | 0.03169 | | 6h | --all-normal | 请求 800 | 150 轮 | 100 | 0.03327 |

四、验证集

版本 阈值 查准率 召回率 F1 PR-AUC
3h 0.862553 93.90% 99.50% 96.62% 99.65%
6h 0.389191 92.45% 100.00% 96.08% 97.41%

五、封存测试集

3 小时窗口

测试集 2,253 窗口(正常 2,094、异常 159)。

类别 查准率 召回率 F1 样本数
正常 99.86% 99.62%(特异度) 99.74% 2,094
异常 95.12% 98.11% 96.59% 159

综合:准确率 99.51%、平衡准确率 98.87%、macro-F1 98.17%、PR-AUC 99.61%、ROC-AUC 0.9997;事件召回 10/10。

分机组:

机组 正常窗口 正常误报率 异常窗口 异常召回 异常查准
7 号机 952 0.32% 10 70.00% 70.00%
8 号机 442 1.13% 149 100.00% 96.75%
9 号机 700 0.00% 0 — —

6 小时窗口

测试集 2,223 窗口(正常 2,043、异常 180)。

类别 查准率 召回率 F1 样本数
正常 100.00% 98.92%(特异度) 99.46% 2,043
异常 89.11% 100.00% 94.24% 180

综合:准确率 99.01%、平衡准确率 99.46%、macro-F1 96.85%、PR-AUC 99.45%、ROC-AUC 0.9995;事件召回 14/14。

分机组:

机组 正常窗口 正常误报率 异常窗口 异常召回 异常查准
7 号机 937 0.85% 6 100.00% 42.86%
8 号机 415 3.13% 174 100.00% 93.05%
9 号机 691 0.14% 0 — —

六、规则联合辅助输出

  • 3h:models/results/pressure/压力模型辅助确认.csv,13,805 行
    • 模型辅助确认异常 1,012、保留规则异常人工复核 4、继续观察 122、正常 12,667
  • 6h:本轮未重新生成(models/generalized/run_pipeline.py 保留 --window-hours 6 参数化路径)
    • 模型辅助确认异常 1,203、继续观察 113、正常 12,394

v2 下“继续观察”从 v1 的 11,000 降到约 120,说明模型对正常窗口的疑似标记大幅减少。

七、版本对比

版本 特征 测试查准率 测试召回率 F1 PR-AUC 8 号机正常误报率
v1 3h(机组相对) 13 50.91% 70.44% 59.10% 57.92% 14.93%
v2 3h(+周期相对) 22 95.12% 98.11% 96.59% 99.61% 1.13%
v2 6h(+周期相对) 22 89.11% 100.00% 94.24% 99.45% 3.13%
旧全量 6h(绝对油压) 10 11.44% 43.40% 18.11% 10.71% 约 3.6%(170 个)

结论:加入扫描器口径的周期相对特征后,跨机组误报和异常召回同时大幅改善。3h 与 6h 都接近完美,3h 的 F1(96.59%)略高于 6h(94.24%),6h 召回 100% 但误报更多。推荐 3h v2。

八、限制

  • 周期基线依赖“周期开始前 3 天正常”的假设,与扫描器一致;若周期起始即异常,基线会偏。
  • 周期相对特征本质上接近规则核心信号,模型更偏向“跨机组复现并校准规则”,而非发现规则之外的新异常,符合“辅助确认”定位。
  • 7 号机测试异常只有 10 个窗口(来自 1 小时“轻微”阶段),其召回/查准数字样本弱,不作结论;9 号机测试无异常。
  • 标签仍来自扫描器规则阶段,未经维修记录或人工确认,指标代表对规则标签的泛化,不是物理故障诊断能力。