v0.3.x 汇总(0.3.4 → 0.3.18)¶
0.3.x 发布在 SMF 成型的三仓协同发版流程之前,没有 doc 仓独立发版笔记。本页按小版本时间倒序回溯,内容整合自 git commit 与 skill 仓库的 known_gotchas.md。
v0.3.18 — Pipeline hygiene batch (M2-M4)¶
三处 MEDIUM 级 hygiene 缺陷,与 0.3.17 的 H1-H4 同一轮 review 中发现,拆开发布避免 0.3.17 变肥。均为"静默错数据/静默丢弃用户意图/远离真因的报错"。
- M2
CreditModelPipeline._fit_woe使用.to_numpy()无长度校验拷贝warm_start_score_col。任何一侧的dropna/ 过滤 / reindex 都会导致行错位。新增Pipeline/_common.copy_column_length_checked强校验。 - M3
RejectInferencePipeline._run组合train_prescore=True+score_col已存在时,静默覆盖用户预设的 score 列。改为发UserWarning明确报告即将覆盖的列名。 - M4
_fit_prescore在 approved 帧为空时,深入 sklearnstratify报困惑错。改为在前置校验直接ValueError,附上 approved/target-observed/总数三项计数。
v0.3.17 — Pipeline hardening batch (H1-H4)¶
四处 HIGH 级"静默错数据"缺陷。零 API 变更,全部是行为收紧。
- H1
CreditModelPipeline._fit_modelsLR 分支修改用户的cfg.model_params["lr"]字典。改为先 copy 再 pop。 - H2
oot_col == 0对字符串 flag("0"/"1"/"train"/"test")全部判 False,把整个训练集吞进 OOT。新增Pipeline/_common.split_oot_by_flag统一走pd.to_numeric(errors="raise"),数值字符串还能用,非数值内容显式报错。 - H3
RejectInferencePipeline隐式 prescore 路径(score_col不在 columns 触发)在_validate_input时未校验target_col。改为两条路径都在前置检查。 - H4
RejectInferencePipelineoot_frac + ri_validation_frac ≥ 1静默把 OOT 泄漏进 validation。改为run()起始处强断言。
v0.3.16 — RI _weight sample_weight 修复¶
RejectInferencePipeline 传给下游 fitter 的样本权重字段命名为 wgt,但 sklearn 需要 sample_weight。参数被静默忽略,权重完全不起作用。修改为正确的 sample_weight。
v0.3.15 — 缺失率筛选 stage 0¶
Feature_Screen.feature_screen 新增 missing_rate_threshold 参数,作为 PSI / IV / correlation 之前的第一道筛选。高缺失率变量在进 WOE 分箱前直接踢掉,避免下游 WOE 拟合被极端稀疏列打散。
v0.3.14 — 加权 corr NaN + 空 stage 审计¶
- 加权相关性(
_weighted_corr)对全 NaN / 单值列返回 NaN 而不是抛异常,让后续 stage 能显式跳过。 - Screen 各 stage 输出增加"空结果审计":stage 结束时若入选集合为空,记录整段前置计数,方便定位是哪个门槛把候选清光的。
v0.3.13 — run_modeling_from_validation orchestrator¶
顶层封装:一个入口跑完 FVP → 生成 FeatureScreeningArtifact → 交接给 CreditModelPipeline 并启用 WOE reuse。是 0.3.9-0.3.12 五步 refactor 的收口。
v0.3.12 — 加权 feature_screen 复用 WOE bins¶
新增 _weighted_woe_bins_screen / _weighted_iv_from_assigned_bins。之前加权 PSI/IV/相关性会 fallback 到 equal-frequency 分箱并 warn;这版起,若上游已经拟合了 WOE 引擎,权重路径直接复用它的 bin boundaries,数值与非加权路径一致。
v0.3.11 — CM 从 FVP screening artifact handoff¶
CreditModelPipeline 新增 screening_artifact / feature_validation_result / reuse_screening_woe 三个字段。FVP 跑完的 WOE 引擎直接被 CM 复用,避免重复拟合与结果漂移。
v0.3.10 — FVP selection mode + FeatureScreeningArtifact¶
FeatureValidationPipeline 新增 selection_enabled / selection_params / weight_col,在 WOE 拟合后运行共享 feature_screen,导出 selected_features 与新数据类 FeatureScreeningArtifact(给 CM 交接用)。
v0.3.9 — 统一 feature_screen 内核¶
新模块 Modeling_Tool/Feature/Feature_Screen.py,合并 CM 与 FVP 之前各自维护的 screening 逻辑。weighted_feature_screen 与 CreditModelPipeline._feature_selection 都改为委托给共享 API。此后加权与非加权路径共用一套配置类与 IV/PSI/corr 实现。
v0.3.7 / v0.3.8 — Pipeline 持久化 + weighted screen 初版¶
0.3.7加入explain_outputs落盘(SHAP / LIME / permutation 结果写文件而不是只留内存)。0.3.8引入首版weighted_feature_screen并 wire 进 Pipeline selection(用于 IPTW/PSM 场景)。
v0.3.6 — woe_fit_query + extra_eval_datasets¶
CreditModelPipeline 新增两个字段:
- woe_fit_query:WOE 拟合时的筛选表达式,可排除某些人群但不影响下游 eval。
- extra_eval_datasets:在标准 train/test/OOT 之外追加的评估集(常用于 FT 场景 —— 自然通过样本只做 eval、不进 fit)。
这两个字段的诞生对应了"业务上要求排除某人群 fit / 但保留其 eval"的高频需求,之前只能手动拆帧。
v0.3.4 / v0.3.5 — 初始稳定版¶
引入 monotone WOE 分箱边界填充、Pipeline 骨架、Core / Sample / Feature / Model / Eval / Explainability 六大模块划分。之后的所有版本都基于这一层骨架增量迭代。