CatBoost-inspired gradient boosting in pure Python with a numba backend
Project description
chimeraboost
What if CatBoost was slightly worse, 4× faster, and all in Python?
📖 Documentation: bbstats.github.io/chimeraboost
- Installation
pip install chimeraboost
- Sample code:
from chimeraboost import ChimeraBoostClassifier, ChimeraBoostRegressor
# classification (n_ensembles=8 is the benchmarked accuracy mode; avoid 2)
clf = ChimeraBoostClassifier(early_stopping=True, n_ensembles=8)
clf.fit(X, y, cat_features=[0, 1], sample_weight=w)
proba = clf.predict_proba(X_test)
# regression (RMSE, MAE, or Quantile)
reg = ChimeraBoostRegressor(loss="Quantile", alpha=0.9, early_stopping=True, n_ensembles=8)
reg.fit(X, y)
-
What?
- Exceedingly opinionated GBDT library that only depends on common Python libraries
- Categorical features (catboost-like processing) and sample weights
- Bagging as a first-class feature (
n_ensembles) - Automatic early stopping, with optional grouped splitting for the validation set
- Supports regression, quantile regression, binary and multiclass classification
- Exact SHAP explanations (
model.shap_values(X)) — interventional TreeSHAP computed exactly thanks to the oblivious tree structure
- Exceedingly opinionated GBDT library that only depends on common Python libraries
-
Tuning tips
- Interaction-heavy regression: raise
depthto 8–10 (default 6 is conservative to protect small data).
- Interaction-heavy regression: raise
-
Inspirations / Citations
- CatBoost — Prokhorenkova et al., NeurIPS 2018 — ordered boosting, ordered target statistics, oblivious trees
- XGBoost — Chen & Guestrin, KDD 2016 — regularized objective, Newton leaf estimation, column subsampling
- LightGBM — Ke et al., NeurIPS 2017 — histogram-based split finding
- Linear-leaf trees — Shi et al., IJCAI 2019 (arXiv:1802.05640) — piece-wise-linear regression trees (
linear_leaves) - TreeSHAP — Lundberg et al., Nature Machine Intelligence 2020 (orig. SHAP, NeurIPS 2017) — exact additive feature attributions (
shap_values) - OpenFE — Zhang et al., ICML 2023 (arXiv:2211.12507) — automated pairwise feature generation (
cross_features) - TabArena — Erickson et al., NeurIPS 2025 (arXiv:2506.16791) — tabular benchmark used for evaluation
-
Why?
- I want to be able to modify my GBDT library at will
- I know Python and I don't know C
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
chimeraboost-0.18.0.tar.gz
(109.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chimeraboost-0.18.0.tar.gz.
File metadata
- Download URL: chimeraboost-0.18.0.tar.gz
- Upload date:
- Size: 109.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c9cb471892009479353a3f112559071302c21d334c68fdf2433a122af996f94
|
|
| MD5 |
a4d42b65dcce663fb1b95fa9407a6f7e
|
|
| BLAKE2b-256 |
c4d50263fcf734b5f2784c5ca457d3c8ce0f58813de0c96cd842aca0c5330bd7
|
File details
Details for the file chimeraboost-0.18.0-py3-none-any.whl.
File metadata
- Download URL: chimeraboost-0.18.0-py3-none-any.whl
- Upload date:
- Size: 70.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
695698498b2aefdd94f0a743588eede2a2852f520dd0dfdfdee8ccaa9d97601c
|
|
| MD5 |
35e893f79a90b3d1d66f7f1073f77c4a
|
|
| BLAKE2b-256 |
6cd507e48ba48828a7fd85d05a75a5b6c021929b66f6eb68c83227b50cef9268
|