跳转至

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 帧为空时,深入 sklearn stratify 报困惑错。改为在前置校验直接 ValueError,附上 approved/target-observed/总数三项计数。

v0.3.17 — Pipeline hardening batch (H1-H4)

四处 HIGH 级"静默错数据"缺陷。零 API 变更,全部是行为收紧。

  • H1 CreditModelPipeline._fit_models LR 分支修改用户的 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 RejectInferencePipeline oot_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_screenCreditModelPipeline._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 六大模块划分。之后的所有版本都基于这一层骨架增量迭代。