chimeraboost
pronounced kai-MEER-uh-boost
Lightning-fast Gradient Boosting, near-Catboost quality, all in Python
📖 Documentation: bbstats.github.io/chimeraboost
#2 On TabArena GBDT Elo (Defaults)
Installation
pip install chimeraboost
Quickstart
from chimeraboost import ChimeraBoostClassifier, ChimeraBoostRegressor
# quality picks the speed/accuracy trade-off: 1 is fastest - 5 is strongest,
# default is 3.
clf = ChimeraBoostClassifier(quality=4)
clf.fit(X, y, cat_features=[0, 1], sample_weight=w)
proba = clf.predict_proba(X_test)
reg = ChimeraBoostRegressor()
reg.fit(X, y)
What?
- Regression, quantile regression, binary and multiclass classification
- Fast training and inference, all in python
- Extremely high quality predictions
How?
- Bagging as a first-class feature (using
n_ensembles) - Automatic early stopping
- Automatic linear-leaf auditioning
- Replay mechanism for faster refitting after early stopping
- Gradient-matrix free multi-quantile split search
- numba is very fast
Why?
- I want to be able to modify my GBDT library at will
- I know Python and I don't know C
Documentation
Benchmarking
Want to help? Run either one, then open an issue or PR with the JSON.
pip install -e ".[bench,competitors]"
python benchmarks/run_benchmarks.py --synth --seeds 3 --save # quick, synthetic
python benchmarks/run_benchmarks.py --decide --seeds 3 --save # slower, 103 real datasets
Each writes benchmarks/results/<timestamp>.json:
{
"provenance": {"chimeraboost": "0.30.0", "platform": "Linux-6.1", "cpu_count": 12,
"libraries": {"catboost": "1.2.10", "lightgbm": "4.6.0"}},
"records": [
{"dataset": "diabetes", "model": "ChimeraBoost", "seed": 0,
"metrics": {"primary": -59.82, "rmse": 59.82}, "fit_time": 0.23}
]
}
Inspirations / Citations
Most ideas in ChimeraBoost were someone else's.
- CatBoost, Prokhorenkova et al., NeurIPS 2018. Oblivious trees (the tree type itself from Kohavi & Li, IJCAI 1995), ordered target statistics, feature combinations, ordered boosting, and the size-dependent automatic learning rate (
adaptive_learning_rate). - XGBoost, Chen & Guestrin, KDD 2016. Regularized objective, second-order split gain, Newton leaf estimation,
min_child_weight. - LightGBM, Ke et al., NeurIPS 2017. Histogram-based split finding, which that paper itself treats as prior art (McRank, Li et al. 2007; pGBRT, Tyree et al. 2011).
- Minimum Variance Sampling, Ibragimov & Gusev, NeurIPS 2019. Gradient-weighted row sampling (
subsample). - Quantized GBDT training, Shi, Ke et al., NeurIPS 2022. Integer gradient histograms (
quantize_gradients). - SketchBoost, Iosipoi & Vakhrushev, NeurIPS 2022, and GBDT-MO, Zhang & Jung. Vector leaves and the projected gradient used for multiclass and multi-quantile splits.
- Linear-leaf trees, Shi, Li & Li, IJCAI 2019 (arXiv:1802.05640). Piece-wise-linear regression trees (
linear_leaves); model trees back to Quinlan's M5, 1992. - 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).
Metadata
Release files for chimeraboost 0.34.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| chimeraboost-0.34.0.tar.gz | 357.7 kB | Without provenance | Details for chimeraboost-0.34.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| chimeraboost-0.34.0-py3-none-any.whl | Python 3 | none | any | Details for chimeraboost-0.34.0-py3-none-any.whl |
Total release size: 550.6 kB
Release files / chimeraboost-0.34.0.tar.gz
| Download URL | chimeraboost-0.34.0.tar.gz |
|---|---|
| Size | 357.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4f259e7b6331a9db2c4fff8f2ad6b4bc0291be01dd52faf205dc5d51c354990
|
|
BLAKE2b-256 checksum How to use checksums |
777b651a9438dec7b771aca3e1425b49a7382c00c95e4bc8e8ba2bfaf2aad2d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / chimeraboost-0.34.0-py3-none-any.whl
| Download URL | chimeraboost-0.34.0-py3-none-any.whl |
|---|---|
| Size | 192.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b6b0ad90b93f85fe3cae8b693cd5ef8c07913992763a2f5855ce0c20433ccc48
|
|
BLAKE2b-256 checksum How to use checksums |
b23a9b94cb09c083e541e94e7b587a7087451e1fde7091525e62b937265ef914
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Security for chimeraboost 0.34.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.