Skip to content

v0.18.1

Choose a tag to compare

@bbstats bbstats released this 20 Jul 11:44

Maintenance release: audit-driven robustness fixes plus an early-stopping correctness fix. No default or accuracy changes on the benchmark suites — all fits stay benchmark-identical.

Fixed

  • Early stopping truncates to the best iteration when n_estimators runs out before patience fires. Previously every tree built past the best validation round was kept, contradicting the documented best_iteration_ contract (~5% validation RMSE cost on budget-exhausted fits in an adversarial repro). Patience stops, early-stopping-off, and callback stops are unchanged.
  • Thread hygiene: thread_count now applies to predict as well as fit, and the process-global numba thread setting is restored afterwards.
  • Pickles no longer carry the packed-forest predict cache (~2x smaller payloads); it rebuilds lazily on first predict. Loaded models predict bit-identically.
  • Loud failures replace silent misbehavior for unseen eval_set labels, class-stranding early-stopping splits, fit(X, y, w) positional misuse, and inert ordered_boosting/leaf_estimation_iterations settings.
  • cat_features accepts a numpy integer array; classifier depth=None resolves to the default 6; bagged members retain the parent's feature names.

Full details in the CHANGELOG.