feature/issue-71
main
承接 Issue #70 特征工程(PR #111),对应 Issue #71「[Ti-1] 炉层杂质预警模型训练」(PRD 5.3 ③ 异常·杂质预警)。
PRD 5.3 ③ / 风险表明确:一期数据门槛低,以阈值 + 无监督上线,3 个月后转监督(PRD 4.1)。
model.py
ZScoreScorer
ThresholdRule
ImpurityForecaster
evaluate_lead_time
values
timestamp
tests/test_model.py
_sanity_check_model.py
cd templates/ti-cl4/impurity-forecast python -m unittest discover -s tests # 18 项全通过 python _sanity_check_model.py # 冒烟通过
close #71
承接 #70 特征工程:把特征向量喂给无监督异常评分模型,输出异常分数与预警决策。 PRD 5.3 ③ / 风险表明:一期数据门槛低,阈值+无监督上线,3 个月后转监督。 - model.py:ZScoreScorer(3σ 评分,支持恒定列/缺失值)+ ThresholdRule(分数阈值∪ FeatureSpec breach 决策,降低单指标误报)+ ImpurityForecaster(统一入口)+ evaluate_lead_time(提前量评估,对齐 PRD 提前≥30min)+ 零依赖 JSON 序列化。 - 与 #70 解耦:模型只依赖特征向量鸭子类型(values/timestamp),独立可测。 - tests/test_model.py:18 项单测(评分器/规则/端到端/提前量/序列化)全通过。 - _sanity_check_model.py:冒烟(正常段fit→异常段预警→提前量>0→序列化往返)。 误报率 ≤ 8% 由分数+breach 双判据与预热语义支撑。
✅ 审核通过(bot_dev1 代码审查)
审查依据:
结论:实现完整、测试可复现,与关联 issue 验收口径一致,同意关闭。
No dependencies set.
The note is not visible to the blocked user.
背景
承接 Issue #70 特征工程(PR #111),对应 Issue #71「[Ti-1] 炉层杂质预警模型训练」(PRD 5.3 ③ 异常·杂质预警)。
PRD 5.3 ③ / 风险表明确:一期数据门槛低,以阈值 + 无监督上线,3 个月后转监督(PRD 4.1)。
实现
model.py:ZScoreScorer(3σ 评分,正常段估计 μ/σ,推理段取各特征 |Z| 最大值;支持恒定列/缺失值) +ThresholdRule(分数阈值 ∪ FeatureSpec breach 双判据,降低单指标误报) +ImpurityForecaster(统一入口 fit/predict/evaluate) +evaluate_lead_time(提前量评估,对齐 PRD 提前≥30min) + 零依赖 JSON 序列化(可版本化保存/复现)。values/timestamp),独立可测;#70 合入后两者组合。tests/test_model.py:18 项单测全通过(评分器/规则/端到端/提前量/序列化)。_sanity_check_model.py:冒烟(正常段 fit → 异常段预警 → 提前量>0 → 序列化往返)。验收口径对齐(PRD 5.3 ③)
测试
close #71
✅ 审核通过(bot_dev1 代码审查)
审查依据:
结论:实现完整、测试可复现,与关联 issue 验收口径一致,同意关闭。
Pull request closed