Skip to main content

Py-boost: a research tool for exploring GBDTs

Modern gradient boosting toolkits are very complex and are written in low-level programming languages. As a result,

  • It is hard to customize them to suit one’s needs
  • New ideas and methods are not easy to implement
  • It is difficult to understand how they work

Py-boost is a Python-based gradient boosting library which aims at overcoming the aforementioned problems.

Authors: Anton Vakhrushev, Leonid Iosipoi , Sergey Kupriyanov.

Py-boost Key Features

Simple. Py-boost is a simplified gradient boosting library, but it supports all main features and hyperparameters available in other implementations.

Fast with GPU. Despite the fact that Py-boost is written in Python, it works only on GPU and uses Python GPU libraries such as CuPy and Numba.

Efficient inference. Since v0.4 Py-Boost is able to perform the efficient inference of tree ensembles on GPU. Moreover, ones your model is trained on GPU, it could be converted to perform the inference on CPU only machine via converting to the treelite format with build-in wrapper (limitation - model should be trained with target_splitter='Single', which is the default).

ONNX compatible Since v0.5 Py-Boost is compatible with ONNX format that allows more options the CPU inference and model deployment.

Easy to customize. Py-boost can be easily customized even if one is not familiar with GPU programming (just replace np with cp). What can be customized? Almost everything via custom callbacks. Examples: Row/Col sampling strategy, Training control, Losses/metrics, Multioutput handling strategy, Anything via custom callbacks

SketchBoost paper

Multioutput training. Current state-of-atr boosting toolkits provide very limited support of multioutput training. And even if this option is available, training time for such tasks as multiclass/multilabel classification and multitask regression is quite slow because of the training complexity that scales linearly with the number of outputs. To overcome the existing limitations we create SketchBoost algorithm that uses approximate tree structure search. As we show in paper that strategy at least does not lead to performance decrease and often is able to improve the accuracy

SketchBoost. You can try our sketching strategies by using SketchBoost class or if you want you can implement your own and pass to the GradientBoosting constructor as multioutput_sketch parameter. For the details please see Tutorial_2_Advanced_multioutput

Installation

Before installing py-boost via pip you should have cupy installed. You can use:

pip install -U cupy-cuda110 py-boost

Note: replace with your cuda version! For the details see this guide

Quick tour

Py-boost is easy to use since it has similar to scikit-learn interface. For usage example please see:

More examples are coming soon

Metadata

Release files for py-boost 0.5.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 py-boost 0.5.2
File Size Uploaded
py_boost-0.5.2.tar.gz 53.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for py-boost 0.5.2
File Interpreter ABI Platform
py_boost-0.5.2-py3-none-any.whl Python 3 none any Details

Total release size: 116.5 kB

Release files / py_boost-0.5.2.tar.gz

Download URL py_boost-0.5.2.tar.gz
Size 53.4 kB
Tags Source
SHA-256 checksum
How to use checksums
16cdfd12c499586cb27dd367b2a4b176cf0cc0f8f5cfbf9f422a83c125fa6a64
BLAKE2b-256 checksum
How to use checksums
2154b6e961ed2dd1ff9c6d21e50d253bb37f8e5ef8ad736ca67fec5266179342
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.1 CPython/3.8.10 Linux/6.6.87.1-microsoft-standard-WSL2

Release files / py_boost-0.5.2-py3-none-any.whl

Download URL py_boost-0.5.2-py3-none-any.whl
Size 63.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9e981da7d28c3849daff66cffed3c301b456d3f967244c303ed581a82cfe39bd
BLAKE2b-256 checksum
How to use checksums
c711a17e3f1a9f740adc084c0e3394b9422129d277ebe586f982346d4a810d3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.1 CPython/3.8.10 Linux/6.6.87.1-microsoft-standard-WSL2

Release history Release notifications | RSS feed

This release

0.5.2 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

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