本实验重构于 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 机组相对特征基础上,加入扫描器口径的周期/近期相对与趋势形态特征)。
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_minoil_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_cycleoil_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% |
机组 median/MAD 只用该机组 train 划分的正常窗口计算,存 models_*/pressure_unit_baselines.json。仅用于 oil_*_z。训练正常窗口少于 24 个或 MAD=0 直接报错。
models/datas/hourly/pks_hourly_full.csv(--hourly-csv,不查库);阶段来源 models/results/pressure/润滑油压力小时阶段段.csv。| 版本 | 候选(正常/异常) | 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% |
测试集 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 | — | — |
测试集 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 | — | — |
models/results/pressure/压力模型辅助确认.csv,13,805 行
models/generalized/run_pipeline.py 保留 --window-hours 6 参数化路径)
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。