# 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 小时“轻微”阶段,用前后小时补足窗口,不做过渡窗口降权)。 - 数据来源:复用 `datasets/pressure/hourly.csv`(`--hourly-csv`,不查库);阶段来源 `cache/pks_scanner/evolution/润滑油压力小时阶段段.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 号机测试无异常。 - 标签仍来自扫描器规则阶段,未经维修记录或人工确认,指标代表对规则标签的泛化,不是物理故障诊断能力。