亮点:低占比特殊值治理(SV Bin Governance)
本次 minor release 引入低占比特殊值(special value,下称 SV)WOE 治理:两组正交开关,用于治理 SV 箱的 WOE 估计。
0.7.2 及之前,两个 WOE 引擎对每个 SV 无条件赋予经验 WOE 并计入总 IV,而 min_bin_size / small_bin_policy 只治理普通区间箱、对 SV 箱完全不生效——占比 0.05% 的 -1 与占比 8% 的 NULL 得到同等信任,导致方差极大、IV 虚高、上线后 PSI 漂移。
四个新参数的默认值组合严格等于旧行为,与 0.7.2 逐位一致;未移除任何公开 API,未翻转任何默认值。
新增参数(两引擎同名同义)
| 参数 | 类型 / 默认 | 取值 | 语义 |
|---|---|---|---|
sv_min_bin_size |
float = 0.0 |
[0.0, 1.0) |
SV 箱占全量样本的占比阈值;0.0 关闭 |
sv_small_policy |
str = "keep" |
keep / neutral / merge_missing |
亚阈值 SV 箱的兜底策略 |
sv_woe_smoothing |
str = "none" |
none / laplace |
是否把 SV 箱 WOE 向全局 base rate 收缩 |
sv_smoothing_alpha |
float = 0.0 |
>= 0.0 |
平滑强度 α;0.0 关闭 |
MonotoneWOEBinner.__init__() 为构造器参数,WOE_Master.fit() / update_woe() 为方法参数;非法取值在入口即抛 ValueError。
方式1 —— 低占比兜底
占比按 prop = n_bin / N_total 计算(分母不加 eps),判定用严格小于:
keep(默认) 取经验 WOE,零行为变更。neutral把亚阈值 SV 箱的woe、iv置0.0。merge_missing把亚阈值 SV 箱计数并入[Missing]箱并按经验公式重算;被合并行存表的 WOE 改写为[Missing]重算值、iv置0。无[Missing]箱时降级为neutral并warnings.warn。
采用 rewrite-stored-WOE 方案,两引擎 transform 路径均无改动——既有 mapping table / Format-A 产物继续可用。实际处置写入结果表的 sv_policy_applied 列。
方式2 —— SV WOE 平滑(bad-rate shrinkage)
sv_woe_smoothing="laplace" 采用坏率收缩,仅作用于 SV 箱:
p = N_bad / (N_bad + N_good)
n_bin = n_bad + n_good
r = (n_bad + alpha * p) / (n_bin + alpha)
pct_bad_smoothed = n_bin * r / N_bad
pct_good_smoothed = n_bin * (1 - r) / N_good
woe = ln(pct_bad_smoothed / pct_good_smoothed)
alpha = 0逐位还原旧经验 WOE。alpha → ∞时r → p,WOE 单调收缩到0;样本越少的箱收缩越强。
采用坏率收缩而非"人口分母伪计数",因后者 alpha → ∞ 收敛到 logit(p) ≠ 0 且非单调。
正交组合语义
方式1 优先:亚阈值箱走兜底后不再平滑;方式2 只作用于占比达标、保留经验 WOE 的 SV 箱。merge_missing + laplace 同开时,合并目标 [Missing] 箱按经验公式重算(不平滑)。[Missing](NaN)箱在两引擎里都是正常受治理 SV 箱,仅在 merge_missing 下只能当合并目标。
Pipeline 层暴露
CreditModelPipelineConfig与FeatureValidationPipelineConfig的woe_params/monotone_woe_params默认字典均显式带上四个sv_*键。- 四个
sv_*已加入FeatureValidationPipeline._MONOTONE_INIT_KEYS与Feature_Screen._MONOTONE_INIT_KEYS白名单——不在白名单里的 key 会被静默丢弃,漏改会导致 FVP 与筛选期 SV 治理静默失效、并造成筛选 IV 与建模 WOE 口径分裂。 sv_*未加入_MONOTONE_FIT_KEYS(构造器参数,误加会抛TypeError)。
向后兼容
- 全默认参数下两引擎 WOE / IV 与 0.7.2 基线逐位一致;
laplace+alpha=0数值等价旧经验 WOE。 - transform 侧零改动。
- 测试:SV 治理套件 139 passed / 0 failed / 0 skipped(双引擎 + Pipeline + 两处 screening 白名单守卫)。
完整文档见 SV Bin Governance 指南。
Full Changelog: v0.7.2...v0.8.0