A gradient boosting implementation in Rust.
Project description
Perpetual
A self-generalizing, hyperparameter-free gradient boosting machine
PerpetualBooster is a gradient boosting machine (GBM) algorithm which doesn't have hyperparameters to be tuned so that you can use it without needing hyperparameter optimization packages unlike other GBM algorithms. Similar to AutoML libraries, it has a budget
parameter which ranges between (0, 1)
. Increasing the budget
parameter increases predictive power of the algorithm and gives better results on unseen data. Start with a small budget and increase it once you are confident with your features. If you don't see any improvement with further increasing budget
, it means that you are already extracting the most predictive power out of your data.
Hyperparameter optimization usually takes 100 iterations with plain GBM algorithms. PerpetualBooster achieves the same accuracy in the single run. Thus, it achieves around 100x speed-up at the same accuracy with different budget
levels and with different datasets. The speed-up might be slightly lower or significantly higher than 100x depending on the dataset.
PerpetualBooster prevents overfitting with a generalization algorithm. The paper is work-in-progress to explain the algorithm.
All of the algorithm code is written in Rust with a python wrapper. All of the rust code for the package can be found in the src directory, while all of the python wrapper code is in the python-package directory.
Usage
You can use the algorithm like in the example below. Check examples folders for both Rust and Python.
from perpetual import PerpetualBooster
model = PerpetualBooster(objective="SquaredLoss")
model.fit(X, y, budget=0.4)
Documentation
Documentation for the python API can be found here.
Installation
The package can be installed directly from pypi.
pip install perpetual
To use in a rust project, add the following to your Cargo.toml file.
perpetual = "0.0.4"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for perpetual-0.0.4-cp312-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a668de823882547c68b7cf9fdae0e97b1cfa1a4a7aff42b26655c892042272dd |
|
MD5 | 4a28948cde020cf3fae5338a5d0a0419 |
|
BLAKE2b-256 | b20547a71d3fe187b6ed0c0b0ea44fb684cca684b1e5f50e075af8d1965a5945 |
Hashes for perpetual-0.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a226e6808795c490d633a94354bda4cd8cdf9d2b82cdaab1fdf5778e9e5a5315 |
|
MD5 | b18d28773e6b8751a0b648e52898b798 |
|
BLAKE2b-256 | b6814341dbc4b8c4820f7cf20ac205851aaf5d7b1eba66d66635ab42a9e4c3fb |
Hashes for perpetual-0.0.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56d62be91038ee5d4db9db1238dc4647b69edcd958800726757aee9bc664acb1 |
|
MD5 | d6689c21b0c0078aa316c76b988a876f |
|
BLAKE2b-256 | 1a4de4581256213c9ae9da3b99ee058bb927dc8faf1d59514e7e2fa4e0dee27b |
Hashes for perpetual-0.0.4-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e91c2f3b70dfc8b87a3849558a999a4ece1af7a64499f194f5d27b5377f0b90d |
|
MD5 | 129e3954cea7f3f35d07e64498097920 |
|
BLAKE2b-256 | f7d2718d0c7428a9bb47e46e2275f98f3fbdefae2175a1380f8a2b5ebc6f2573 |
Hashes for perpetual-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6e1b680b6393e00706db748d03fe2dfb6f3a2910d0548c0cf54a8268a6c5a85 |
|
MD5 | e57c9e55689208f12718cc96f9b7fc7a |
|
BLAKE2b-256 | 2cb4d1f5f555965f452346817a921352bf2c19fcebb2ac492e456efa28da4f01 |
Hashes for perpetual-0.0.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b692d2a20542ed843285556db8979923bf77c4302ccdbdd54a480f9941b8638 |
|
MD5 | f0bed0641632320017c9f18cfe077253 |
|
BLAKE2b-256 | db38d9ad30c21b33408ef24772d7bc628e6b7e5d9b17741adb71c139960bea21 |
Hashes for perpetual-0.0.4-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c214f1d518db6c5d0507bf7be0041f134d7c066cca55eb019cd5bde738e94e99 |
|
MD5 | 34dd912634a2d71ffe1a0b241af8c8c5 |
|
BLAKE2b-256 | 6149392065f5a2c47e4d178ff33c09615e7baaf619d21b7ca808c0b59bb0df79 |
Hashes for perpetual-0.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a375236ec50af084ec938b89f3b6cfa822b745e7228b05d62904fe3fcdc5cb5 |
|
MD5 | 23ce91be7516e7349d2c2af9bc321b5e |
|
BLAKE2b-256 | 31a5f3654469157007304f4ebfedf50f76eca3eb1364d5478c4c14117b6a2ca5 |
Hashes for perpetual-0.0.4-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0c336b12fd07073cd25d4bcb8e21b77da130d57b71c339112b6388a2eb99f33 |
|
MD5 | c847909c24a5ac01f4b00e5358c251fd |
|
BLAKE2b-256 | b09fa87ec75b8391bf38bfdfe08f753474709bfaab5d23a497f03b081e65c8e6 |
Hashes for perpetual-0.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cc2f9d11b38e86ccd74c435d5f52285f3da691d67f5a4604f0f66c75ba5bfd2 |
|
MD5 | 019d4a5b3dad97c6950b5f50cd8bd101 |
|
BLAKE2b-256 | 54fb87e9bb96942897873167a5dc6c2a4344534ef0103df05cd2a8e02352e744 |
Hashes for perpetual-0.0.4-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a185eaaefc048f1e031fc76cf98ab7f6162f12fc5738515ed2c09645b3eba0b5 |
|
MD5 | 88d05534eb6e2ccc9455d9b1c5f42848 |
|
BLAKE2b-256 | d4d1dbd627a2b8162c955fc23d67eb8de16ab23f9fea8865088817f7c5b2e08c |
Hashes for perpetual-0.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6196134d1375e72395e57d011019c64583c233e7d202efd679efcf2f97ece842 |
|
MD5 | 910ebd4bb03895bf76dfe837d6c2f172 |
|
BLAKE2b-256 | 0fceab8c3594ffe80abb1990c0e7a22c276367970896fe42d7e774773eb594d6 |