Skip to main content

chimeraboost

pronounced kai-MEER-uh-boost

Lightning-fast Gradient Boosting, near-Catboost quality, all in Python

📖 Documentation: bbstats.github.io/chimeraboost

image

#2 On TabArena GBDT Elo (Defaults) image

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)

Source distribution for chimeraboost 0.34.0
File Size Uploaded
chimeraboost-0.34.0.tar.gz 357.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for chimeraboost 0.34.0
File Interpreter ABI Platform
chimeraboost-0.34.0-py3-none-any.whl Python 3 none any Details

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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page