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.33.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.33.0
File Size Uploaded
chimeraboost-0.33.0.tar.gz 332.5 kB Details

Built distribution (wheel)

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

Total release size: 513.6 kB

Release files / chimeraboost-0.33.0.tar.gz

Download URL chimeraboost-0.33.0.tar.gz
Size 332.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e980585c38733474ce044102388ee502e40e4771d576c1e8a5f9675a3451725f
BLAKE2b-256 checksum
How to use checksums
f259a6055406a5af7c34d96f03378ccf31cda73e748e2c2dfbea0774f8eac09b
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.33.0-py3-none-any.whl

Download URL chimeraboost-0.33.0-py3-none-any.whl
Size 181.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9537b80e63b2de9a3311b03821a9bec755e304873ef8b35e50379297e6b8d779
BLAKE2b-256 checksum
How to use checksums
3c6482f01fae0858bfd34df9e06eee3b3b7c382d3c087b0e556460a5ac1e6697
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