Skip to content

Releases: Kyle-J-Sun/SuperModelingFactory

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 04:05

亮点:低占比特殊值治理(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 箱的 woeiv0.0
  • merge_missing 把亚阈值 SV 箱计数并入 [Missing] 箱并按经验公式重算;被合并行存表的 WOE 改写为 [Missing] 重算值、iv0。无 [Missing] 箱时降级为 neutralwarnings.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 层暴露

  • CreditModelPipelineConfigFeatureValidationPipelineConfigwoe_params / monotone_woe_params 默认字典均显式带上四个 sv_* 键。
  • 四个 sv_* 已加入 FeatureValidationPipeline._MONOTONE_INIT_KEYSFeature_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

v0.7.2

Choose a tag to compare

@github-actions github-actions released this 18 Jul 15:25
be2b30d

What's Changed

Full Changelog: v0.7.1...v0.7.2

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 18 Jul 09:02

Full Changelog: v0.7.0...v0.7.1

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 04:04

Full Changelog: v0.6.9...v0.7.0

v0.6.9

Choose a tag to compare

@github-actions github-actions released this 17 Jul 05:34

Full Changelog: v0.6.8...v0.6.9

v0.6.8

Choose a tag to compare

@github-actions github-actions released this 17 Jul 00:06

Full Changelog: v0.6.7...v0.6.8

v0.6.7

Choose a tag to compare

@github-actions github-actions released this 16 Jul 13:57

Full Changelog: v0.6.6...v0.6.7

v0.6.6

Choose a tag to compare

@github-actions github-actions released this 16 Jul 09:33

Full Changelog: v0.6.5...v0.6.6

v0.6.5

Choose a tag to compare

@github-actions github-actions released this 16 Jul 08:02

Full Changelog: v0.6.4...v0.6.5

v0.6.4

Choose a tag to compare

@github-actions github-actions released this 15 Jul 13:02

Full Changelog: v0.6.3...v0.6.4