Skip to main content
logo


Please check out the website if you're looking for the documentation!

What is this?

This is StarBoost, a Python library that implements gradient boosting. Gradient boosting is an efficient and popular machine learning algorithm used for supervised learning.

Doesn't scikit-learn already do that?

Indeed scikit-learn implements gradient boosting, but the only supported weak learner is a decision tree. In essence gradient boosting can be used with other weak learners than decision trees.

What about XGBoost/LightGBM/CatBoost?

The mentioned libraries are the state of the art of gradient boosting decision trees (GBRT). They implement a specific version of gradient boosting that is tailored to decision trees. StarBoost's purpose isn't to compete with them. Instead it's goal is to implement a generic gradient boosting algorithm that works with any weak learner.

A focus of StarBoost is to keep the code readable and commented, instead of obfuscating the algorithm under a pile of tangled code.

What's a weak learner?

A weak learner is any machine learning model that can learn from labeled data. It's called "weak" because it usually works better as part of an ensemble (such as gradient boosting). Examples are linear models, radial basis functions, decision trees, genetic programming, neural networks, etc. In theory you could even use gradient boosting as a weak learner.

Is it compatible with scikit-learn?

Yes, it is.

How do I install it?

Barring any weird Python setup, you simply have to run pip install starboost.

How do I use it?

The following snippet shows a very basic usage of StarBoost. Please check out the examples directory for comprehensive examples.

from sklearn import datasets
from sklearn import tree
import starboost as sb

X, y = datasets.load_boston(return_X_y=True)

model = sb.BoostingRegressor(
    base_estimator=tree.DecisionTreeRegressor(max_depth=3),
    n_estimators=30,
    learning_rate=0.1
)

model = model.fit(X, y)

y_pred = model.predict(X)

You can find the source code for running the benchmarks here.

What are you planning on doing next?

  • Logging the progress
  • Handling sample weights
  • Implement more loss functions
  • Make it faster
  • Newton boosting (taking into account the information from the Hessian)
  • Learning to rank

By the way, why is it called "StarBoost"?

As you might already know, in programming the star symbol * often refers to the concept of "everything". The idea is that StarBoost can be used with any weak learner, not just decision trees.

License

The MIT License (MIT). Please see the LICENSE file for more information.

Metadata

Release files for starboost 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for starboost 0.0.2
File Size Uploaded
starboost-0.0.2.tar.gz 13.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for starboost 0.0.2
File Interpreter ABI Platform
starboost-0.0.2-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 28.7 kB

Release files / starboost-0.0.2.tar.gz

Download URL starboost-0.0.2.tar.gz
Size 13.0 kB
Tags Source
SHA-256 checksum
How to use checksums
10d88630ecef8b4442a667ede4dcf6c3d383f4f0f55af0d909726ae63ae9fd3e
BLAKE2b-256 checksum
How to use checksums
4661d915c3d3b505ed8c6a76507cae82269aa64ed6e164bcfc1fd7b6e4e2f682
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.5

Release files / starboost-0.0.2-py2.py3-none-any.whl

Download URL starboost-0.0.2-py2.py3-none-any.whl
Size 15.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
e35691117640b8dcfbeb3edc1b2ea5eddecfc33148775a2c7c04273457088249
BLAKE2b-256 checksum
How to use checksums
cb4d3f696e4ff21a029b677e0ae3104f3385973679d17e3cef234e775da00617
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.5

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

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