跳转至

v0.6.0

Minor release focused on vectorized execution and bounded-memory analysis for wide datasets. Public result structures and business calculation semantics remain compatible unless an existing API explicitly opts into a new block parameter.

Shared WOE, PSI, and IV/KS Paths

  • MonotoneWOEBinner.apply_woe() can transform a selected varlist instead of rebuilding every fitted WOE column.
  • WOEEngineAdapter.assign_bins_frame() performs feature-block transforms and PSICalculator reuses pre-binned data across grouped PSI calculations.
  • FeatureValidation grouped PSI and IV/KS aggregate group-by-bin counts with vectorized arrays and reuse the same bins across time and population views.
  • The grouped two-set PSI path now always returns its summary when return_details=False.

Wide-Table and Comparison Performance

  • proc_means_by_grp() aggregates wide numeric frames before reshaping and processes categorical distributions in feature blocks.
  • Feature screening and FeatureValidation correlation paths use matrix blocks, upper-triangle masks, and cached IV/KS metrics instead of repeated pairwise loops.
  • ProcCompareEngine and UAT consistency reports compare fields in bounded column blocks while preserving tolerance, null, ordering, and mismatch-detail semantics.
  • Gains tables use named aggregation for built-in metrics; custom add_func callbacks retain the existing groupby.apply fallback.

Sampling and Explainability

  • SampleSplitter.split_indices() supports repeated candidate evaluation without copying full INS/OOS DataFrames.
  • SampleAnalysis uses index-only candidate splits and named aggregation for profile and bad-rate summaries.
  • PDP, ICE, and ALE stack prediction grids and execute predictions in bounded batches.
  • Legacy WOE mapping transformers build output columns once, avoiding DataFrame fragmentation on wide inputs.

New Controls

  • WOEEngineAdapter.assign_bins_frame(..., feature_block_size=64)
  • PSICalculator(..., feature_block_size=64)
  • proc_means_by_grp(..., feature_block_size=128)
  • FeatureScreenConfig.corr_block_size=256
  • ProcCompareConfig.compare_block_size=64
  • UATConfig.comparison_block_size=128
  • ScoreConsistencyUATPipelineConfig.comparison_block_size=128
  • PDP, ICE, and ALE prediction_batch_size=100000

Compatibility and Validation

  • Cross-batch high-correlation pair keys now use a normalized NumPy string dtype, supporting both NumPy 1.x and 2.x.
  • Full local pytest suite: 656 passed.
  • Python 3.11 and 3.12 legacy, modern, and bleeding dependency matrices passed.
  • Source package verification and strict documentation builds passed.