跳转至

v0.5.3

Patch release for the cross-module hardening batch originally planned under the 0.6.0 spec. The fixes are shipped on the 0.5.x line to keep the public version sequence conservative.

What Changed

  • ScoreConsistencyUATPipeline aggressive numeric coercion now really coerces object columns to numeric, even when no value can be parsed. Non-numeric values become NaN with a warning.
  • CreditModelPipeline and RejectInferencePipeline aggregate NaN / Inf prediction counts across evaluation datasets and expose predict_positive_nan_stats on the pipeline instance.
  • validate_sample_weight() now rejects all-zero weights. Weighted metrics and model fits no longer proceed with undefined total mass.
  • ODPSRunner.insert_df(..., partition=..., overwrite=True) now uses a staging partition and rename swap by default. The old delete-then-write path remains available with atomic=False.
  • NumVarBinning.apt_binning(..., modify=False) no longer mutates the caller's points list.
  • FuzzyAugmentInferrer now handles NaN reject scores explicitly. The default nan_score_policy="drop" removes NaN-score rejects instead of silently assigning 50/50 bad probability. Legacy behavior is available with nan_score_policy="fill_0.5".
  • PerformanceEvaluator.add_dataset() now rejects duplicate dataset names by default. Use overwrite=True for intentional replacement.
  • PerformanceEvaluator.evaluate() now always returns a pandas.DataFrame. Former -1/-2/-3 paths return an empty DataFrame and set evaluate_status.
  • Weighted safe_auc() only swallows expected metric failures (ValueError, ZeroDivisionError) and records them via smf_logger; real programming errors propagate.
  • FeatureSelectionAnalyzer.chi2_selection() and compute_vif() now expose nan_handling, defaulting to fillna_median instead of hard-coded fillna(0).

Migration Notes

These fixes intentionally tighten several silent-failure paths:

  • All-zero sample weights now raise ValueError.
  • Duplicate PerformanceEvaluator.add_dataset() names now raise KeyError unless overwrite=True.
  • Fuzzy reject inference drops NaN-score rejects by default. Set nan_score_policy="fill_0.5" only when reproducing legacy reports.
  • FeatureSelectionAnalyzer no longer conflates missing values with real zero by default. Use nan_handling="fillna_0" for old output parity.

Validation

The 0.5.3 hardening batch adds regression coverage for all ten spec items: N1, N7, N10, N12, N14, N18, N19, N20, N21, and N40.