v0.5.1¶
Target release for the Feature / WOE hygiene batch.
What Changed¶
- Weighted IV now excludes the synthetic missing bucket by default and skips class-degenerate bins instead of returning
infornan. Weighted_Screen._assign_bins(..., edges=None)now raises a clearValueErrorby default. The old "map every non-null value to all" behavior is available throughon_null_edges="warn_and_zero".Feature_Screennow passes the current surviving feature list into downstream WOE / PSI / IV stages after the missing-rate stage. Dropped variables are no longer refit later.- PSI now supports
psi_missing_bucket_policy. - Default:
"smooth_laplace" - Backward-compatible old behavior:
"floor_1e6" - Strict exclusion path:
"exclude" Feature_Insightsand the WOE-engine feature patch now record expected per-variable failures infailed_variablesand warn once, instead of silently dropping failed variables.WOE_Masternow usesSMF_MISSING_BINas the default missing sentinel instead of-999999.WOE_Masterraises a clear error whenwoe_dictis empty instead of bubbling upValueError: No objects to concatenate.
Migration Notes¶
Some metrics can change:
- Weighted IV may be lower when the previous result was inflated by the missing bucket.
- PSI can be much smaller for one-sided new buckets because the default no longer floors the missing side to
1e-6.
For exact legacy PSI reports:
or:
For legacy WOE sentinel behavior without collision:
This now emits a warning because finite sentinel values can collide with real source-system codes. If the data actually contains the sentinel, SMF raises and asks you to use SMF_MISSING_BIN or a truly unreachable sentinel.
New Public Utility¶
Use this when you need to explicitly pass the default WOE missing sentinel.