# PKS models —— 压力/振动算法与模型重构 本目录把原先合并在一起的 PKS 故障算法与泛化模型拆开、规范化重排,是本项目 压力/振动算法与模型的唯一实现。原 `backend/model_assistant_generalized/` 已删除, 其逻辑与文档已全部迁入本目录;`backend/scan_pks_fault_evolution.py`(合并版扫描器) 保留作为历史参照。 ## 目录 | 目录 | 内容 | |---|---| | `common/` | 公共层:数据库连接、报警阈值、小时聚合、数据查询、稳健统计、CSV 输出、窗口切分、训练/评估/推理、自动校验 | | `generalized/` | **压力算法 + 压力模型**:`pressure_algorithm.py`、`features_pressure.py`、`build_datasets.py`、`split_datasets.py`、`train_model.py`、`evaluate_model.py`、`infer_and_combine.py`、`run_pipeline.py` | | `vibration/` | **振动算法 + 振动模型**:与 `generalized/` 对称 | | `datas/` | 中间数据与训练数据:`hourly/`(小时中间表)、`pressure/`、`vibration/`(窗口样本)、`artifacts/`(训练产物)、`reference/`(golden 基准) | | `results/` | 算法扫描结果与模型测试结果:`common/`、`pressure/`、`vibration/`、`verification/` | | `markdown/` | 文档:压力算法、压力模型、振动算法、振动模型、模型辅助确认方案 | | `scan_all.py` | 一次运行压力+振动扫描并缓存小时中间表 | ## 复现(3 小时) ```bash # 1) 算法扫描结果(复用已缓存小时中间表,逐字节对齐 golden) python models/scan_all.py --hourly-csv models/datas/hourly/pks_hourly_full.csv # 或从数据库全量重跑并缓存小时中间表 python models/scan_all.py --save-hourly # 2) 压力模型 3h:build -> split -> train -> evaluate -> infer python models/generalized/run_pipeline.py --window-hours 3 # 3) 振动模型 3h python models/vibration/run_pipeline.py --window-hours 3 # 4) 自动校验(算法 CSV、数据库全量重跑、模型 3h 指标) python models/common/verify.py ``` `--window-hours 6` 的参数化代码路径保留,但本轮不重新生成 6h 产物。 ## 校验基线 `python models/common/verify.py` 会比对: - 5 个扫描结果 CSV 与 `models/datas/reference/` 逐字节一致; - `models/results/verification/db_parity.json` 显示数据库全量重跑与缓存一致; - 压力 3h:阈值 `0.862553`、异常 F1 `96.59%`、事件召回 `10/10`、分机组正常误报率 `0.32%/1.13%/0.00%`; - 振动 3h:阈值 `0.916630`、异常 F1 `71.43%`、事件召回 `4/4`、分机组正常误报率 `0.00%/0.71%/0.13%`。 报告写入 `models/results/verification/verification_report.json`。 ## 标签来源 模型标签来自算法扫描结果(`润滑油压力小时阶段段.csv` / `振动异常段.csv`), 指标衡量的是对规则标签的泛化一致性,不等同于物理故障诊断。