Repository navigation
0.33.0
Better predictive distributions, a rarity signal for high-cardinality categoricals, and faster fits.
Quantile regression now leads the field
ChimeraBoostQuantileRegressor changes three defaults.
- Calibrated intervals. After the fit, the intervals are rescaled on the rows early stopping already held out (
conformalize="auto"). A nominal 90% interval now covers about 90% on average, where it used to cover 87%, and no extra rows are spent. - Deeper trees.
depthis now 6 (it was 4). - Three candidates, one kept (
audition=True). The fit builds the model as configured, the same model with 254 histogram bins, and the model's shape moved onto the median of an ordinary squared-errorChimeraBoostRegressor. It keeps whichever scores the best CRPS on the held-out rows.
model = ChimeraBoostQuantileRegressor().fit(X, y)
model.audition_["selected"] # "head", "bins" or "recentred"On the 36 Grinsztajn regression datasets it now beats CatBoost's MultiQuantile on CRPS on 27, in about a seventh of CatBoost's fit time. It beats LightGBM's per-level quantile boosters on 30. Every prediction method and shap_values serve the chosen candidate. The fit takes about 2.35 times longer than 0.32.0's single model; audition=False gives a single model back.
Count columns for high-cardinality categoricals
cat_count_features=True, the new default, adds one numeric column for each categorical column with at least 256 training categories: the category's training-row count. It is the part of CatBoost's categorical encoding that our target statistic did not carry. Where it engages, it wins 6 of 7 datasets on the high-cardinality benchmark suite and 5 of 6 on the public validation suite. Data without such a column fits exactly as before.
Faster, with identical predictions
- Multiclass fits are 3–6% faster, then another 4–6%.
- Binary classification fits are 4–6% faster.
- Fits on data with categorical columns are 8–19% faster, and another 3–9% when there are many numeric columns too.
New, opt-in
- Random intercepts for grouped regression data (#109, first slice):
ChimeraBoostRegressor(random_effects=True)withfit(X, y, groups=...). predict_threshon the quantile regressor (#106): exceedance probabilitiesP(y > t)read off the fitted grid.cross_features="always"on the classifier.
Behaviour changes
- Predictions change on data with a categorical column of 256 or more categories.
cat_count_features=Falserestores 0.32.0. ChimeraBoostQuantileRegressorpredictions change.depth=4, conformalize=False, audition=Falsereproduces 0.32.0 exactly.- Nothing else changes: other regressors and classifiers give the same predictions as 0.32.0.
Full notes: CHANGELOG.