0.16.0
Bagging program — the opt-in n_ensembles mode is now a tuned, first-class accuracy mode.
Changed
- Members train on 80% row subsamples without replacement (new
max_samples, default0.8;1.0restores the classic bootstrap). A bootstrap gives a member only ~63% unique rows at full compute; 80% without replacement is more effective data and less work. Grinsztajn 54W-5L +0.94% with a 23-0 Brier sweep at 0.87x fit; high-card Brier 8-0 at 0.73x. - Tuned bagged-member defaults: inside a bag,
learning_rate None → 0.15andcolsample None → 0.85(single-model resolution unchanged). Announced at fit; recorded inmember_params_; explicit values always win. Recommended sizen_ensembles=8(stronger than 5 at similar cost; 2 remains anti-recommended). - Members fit in parallel by default (
ensemble_n_jobs1 → -1): workers split the thread budget, so a bagged fit uses the same cores a single fit would. Models identical to sequential (verified on 73 datasets); 1.2–2x faster wall-clock.
Fixed
ensemble_n_jobs=-1previously gave every worker the full thread budget (oversubscribing); the budget is now divided across workers.
The single-model default is unchanged.