Skip to main content

Orbit Boost: oblique softmax boosting with ridge warm-start and BOSS sampling

Project description

🚀 Orbit Boost

PyPI version Python Versions License CI


Orbit Boost is a research-oriented gradient boosting library built from scratch in Python, designed as an experimental alternative to LightGBM, XGBoost, and CatBoost.
It introduces oblique projections, BOSS sampling, Newton-style updates, and a ridge-based warm start for improved performance.


✨ Features

  • 🔥 Custom Boosting Core
    • Oblique feature projections per round
    • BOSS sampling strategy (gradient + rarity-driven)
    • Newton-style updates with global line search
    • Mild class reweighting for improved balance
  • 🏎 Warm Start
    • Closed-form ridge multinomial initialization
  • Parallelization
    • Trees for each class are fit in parallel
  • 🛑 Early Stopping
    • Based on validation Quadratic Weighted Kappa (QWK)
  • 🎯 Compatible with scikit-learn API (fit, predict, predict_proba)

📦 Installation

From PyPI:

pip install orbit-boost

From source:

git clone https://github.com/abdulvahapmutlu/orbit-boost.git
cd orbit-boost
pip install -e .

🛠 Usage

from orbit_boost import OrbitBoostClassifier
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report

X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

model = OrbitBoostClassifier(n_estimators=320, learning_rate=0.05, verbose=1)
model.fit(X_train, y_train)

y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))

📊 Benchmarking

Orbit Boost was compared against LightGBM, XGBoost, and Random Forest on the private NutriScore dataset (balanced training) on a 5-class NutriScore Dataset. Under-sampling applied to the whole dataset for each model, and the balanced training count for each class is (A, B, C, D, E) 103451.

Quadratic Weighted Kappa (QWK) – Validation

Model QWK (Validation) F1-Macro Accuracy
Orbit Boost 0.9549 0.9161 0.93
LightGBM 0.9545 0.9157 0.93
XGBoost 0.9523 0.9080 0.92
RandomForest 0.9504 0.9065 0.92

Quadratic Weighted Kappa (QWK) – Test

Model QWK (Test) F1-Macro Accuracy
Orbit Boost 0.9549 0.9168 0.93
LightGBM 0.9547 0.9167 0.93
XGBoost 0.9527 0.9080 0.92
RandomForest 0.9508 0.9069 0.92

📌 Orbit Boost achieves state-of-the-art parity with LightGBM on NutriScore, outperforming XGBoost and Random Forest. However, with pure Python loops, it's slower than its optimized rivals. Optimization for Orbit-Boost is a must.


🤝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md and follow the Code of Conduct.


📜 Citation

If you use Orbit Boost in academic work, please cite:

@software{orbit_boost2025,
  author = {Abdulvahap Mutlu},
  title = {Orbit Boost: Oblique Projection Gradient Boosting},
  year = {2025},
  url = {https://github.com/abdulvahapmutlu/orbit-boost},
}

📄 License

MIT License © 2025 Abdulvahap Mutlu


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orbit_boost-0.1.1.post1.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

orbit_boost-0.1.1.post1-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file orbit_boost-0.1.1.post1.tar.gz.

File metadata

  • Download URL: orbit_boost-0.1.1.post1.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for orbit_boost-0.1.1.post1.tar.gz
Algorithm Hash digest
SHA256 df4dcfea43d1c841b012979f2361bb0f648ca6910b39d530655374652cb36b0b
MD5 c3f6ea87cb3a9879252ebd2ef6a18f31
BLAKE2b-256 eccdb49ff18c33ed69da7cbf439f4f1c2c52833586e49c312aa26deb4a080b38

See more details on using hashes here.

Provenance

The following attestation bundles were made for orbit_boost-0.1.1.post1.tar.gz:

Publisher: release.yml on abdulvahapmutlu/orbit-boost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file orbit_boost-0.1.1.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for orbit_boost-0.1.1.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 d55200c3b3398c48675c97535569a1c48a8313eb2f78bf8d8eed54bc5d4a1bda
MD5 2874d9b8fa5837adc0adcd543e023382
BLAKE2b-256 214cf5e90458e54425b11a47a481d506b9ec6cf59cfbeeb07298044b62d1dc01

See more details on using hashes here.

Provenance

The following attestation bundles were made for orbit_boost-0.1.1.post1-py3-none-any.whl:

Publisher: release.yml on abdulvahapmutlu/orbit-boost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page