Repository navigation
Update a fitted model with new rows, and sharper predictive distributions.
Update a model with new data: refresh
New labelled rows keep arriving after you train. refresh(X, y) folds them in without a full retrain: it keeps every tree the model already learned and recomputes the leaf values on the old and new rows together. Turn it on with store_training_data=True, which keeps the training rows in compact form.
model = ChimeraBoostRegressor(store_training_data=True).fit(X, y)
model.refresh(X_new, y_new)On a 3.3-million-row regression, folding in a day of new rows took 70 seconds against 232 for a full refit, at the same accuracy. Refreshing with no new rows reproduces the model bit for bit. It works on the regressor and the binary classifier (#131, first slice); bagged models, multiclass, loss="Quantile" and random_effects=True are not supported yet.
Quantile regression: two more candidates, and all your rows
ChimeraBoostQuantileRegressor changes two defaults.
- Five candidates, one kept. The audition adds "fixed", an ordinary squared-error model's prediction plus the quantiles of its held-out errors, and "scaled", the same centre plus a second model's predicted spread, so the width follows the data. It now beats CatBoost's MultiQuantile on 29 of the 36 Grinsztajn regression datasets (it was 27), with the biggest gains on low-noise data (pol +31%, visualizing_soil +17%).
- Trained on all your rows. Called without an
eval_set, the model used to keep the 20% it holds out for early stopping, calibration and the candidate choice out of the final model. It still makes those choices on that 20%, then retrains the winner on all rows (refit_full=True). That improves CRPS on 35 of the 36 datasets (median +0.9%).
model = ChimeraBoostQuantileRegressor().fit(X, y)
model.audition_["selected"] # "head", "bins", "recentred", "fixed" or "scaled"
model.refit_ # what was retrained on all rowsA quantile fit without an eval_set takes about 40% longer than in 0.33.0.
Faster, with identical predictions
- Fits with linear leaves are faster: a 500,000-row fit went from 15.9 to 13.4 seconds, and a refresh from 5.0 to 3.6.
Behaviour changes
ChimeraBoostQuantileRegressorpredictions change.audition=False, refit_full=Falsegives the single calibrated model, as 0.33.0 did withaudition=False; 0.33.0's three-candidate choice has no switch.- Nothing else changes: other regressors and classifiers give the same predictions as 0.33.0, and
refreshis opt-in.
Full notes: CHANGELOG.