Skip to main content

A self-generalizing gradient boosting machine which doesn't need hyperparameter optimization

Project description

Python Versions PyPI Version Crates.io Version Static Badge

Perpetual

PerpetualBooster is a gradient boosting machine (GBM) algorithm which doesn't need hyperparameter optimization unlike other GBM algorithms. Similar to AutoML libraries, it has a budget parameter. Increasing the budget parameter increases the predictive power of the algorithm and gives better results on unseen data. Start with a small budget (e.g. 1.0) and increase it (e.g. 2.0) once you are confident with your features. If you don't see any improvement with further increasing the budget, it means that you are already extracting the most predictive power out of your data.

Benchmark

Hyperparameter optimization usually takes 100 iterations with plain GBM algorithms. PerpetualBooster achieves the same accuracy in a single run. Thus, it achieves up to 100x speed-up at the same accuracy with different budget levels and with different datasets.

The following table summarizes the results for the California Housing dataset (regression):

Perpetual budget LightGBM n_estimators Perpetual mse LightGBM mse Speed-up wall time Speed-up cpu time
1.0 100 0.192 0.192 54x 56x
1.5 300 0.188 0.188 59x 58x
2.1 1000 0.185 0.186 42x 41x

The following table summarizes the results for the Cover Types dataset (classification):

Perpetual budget LightGBM n_estimators Perpetual log loss LightGBM log loss Speed-up wall time Speed-up cpu time
0.9 100 0.091 0.084 72x 78x

You can reproduce the results using the scripts in the examples folder.

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=1.0)

Documentation

Documentation for the Python API can be found here and for the Rust API 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 to get the package from crates.io.

perpetual = "0.6.1"

Paper

PerpetualBooster prevents overfitting with a generalization algorithm. The paper is work-in-progress to explain how the algorithm works. Check our blog post for a high level introduction to the algorithm.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

perpetual-0.6.1-cp312-none-win_amd64.whl (607.6 kB view details)

Uploaded CPython 3.12 Windows x86-64

perpetual-0.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (753.5 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

perpetual-0.6.1-cp312-cp312-macosx_11_0_arm64.whl (608.8 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

perpetual-0.6.1-cp312-cp312-macosx_10_12_x86_64.whl (645.0 kB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

perpetual-0.6.1-cp311-none-win_amd64.whl (609.4 kB view details)

Uploaded CPython 3.11 Windows x86-64

perpetual-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (754.1 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

perpetual-0.6.1-cp311-cp311-macosx_11_0_arm64.whl (609.7 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

perpetual-0.6.1-cp311-cp311-macosx_10_12_x86_64.whl (647.0 kB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

perpetual-0.6.1-cp310-none-win_amd64.whl (609.4 kB view details)

Uploaded CPython 3.10 Windows x86-64

perpetual-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (754.1 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

perpetual-0.6.1-cp39-none-win_amd64.whl (609.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

perpetual-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (754.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

File details

Details for the file perpetual-0.6.1-cp312-none-win_amd64.whl.

File metadata

  • Download URL: perpetual-0.6.1-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 607.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for perpetual-0.6.1-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 9f96ebf8cfb1e01c96b2300502b9b3b27a37d02424b56853dd9d51df7dca6ae6
MD5 a71ee951a645603f860c375722666a4a
BLAKE2b-256 e1cb15397e1fcebe6b249cfe7ef1cccb1d25d273e7e20b9dbe241bed258abfc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp312-none-win_amd64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

Details for the file perpetual-0.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for perpetual-0.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 83115a7a1529df3823268f1bd719b271ac916e833045dd44ca17aba4d663a671
MD5 824eed0759172ca6d2d71118d44c3546
BLAKE2b-256 a02c306ff8b0b583ff41f48bee72eaecb3b01c2fd81be6ae9fdbf956e4e68952

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

Details for the file perpetual-0.6.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for perpetual-0.6.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 15a47b72771e7b9a0a75e55e2446ffac0c756839d10f64ac4a328ebf97932337
MD5 24706f0503d00df7f452d1503375cdab
BLAKE2b-256 0df3c54c5bf05e55bd649dc600e1b93ea97c354ef7064dd6df4374625b405601

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

Details for the file perpetual-0.6.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for perpetual-0.6.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f9f2e085d3bfeed4235ffe11354753652087a6e6fc1994b9a875ad1add449a75
MD5 7410751c8ebece8a06b76127c585d1ee
BLAKE2b-256 f0f60a9e54f43e0be569fe1a87c0cf88d318dcc2fbf975be5cfa4a0d7a187f7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

Details for the file perpetual-0.6.1-cp311-none-win_amd64.whl.

File metadata

  • Download URL: perpetual-0.6.1-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 609.4 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for perpetual-0.6.1-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 7fbe14d2365d72eed5878ebc6106dfb85ceed075a8fb0d2e4c79a55fce317bd8
MD5 667f969a8bac5b62480d6b40dc5fc27d
BLAKE2b-256 5afcd5eda0ca7401ff577be9a05e8b63b68f990731ae6158336ee5a0f7e3c764

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp311-none-win_amd64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

Details for the file perpetual-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for perpetual-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b5c35dcc63581b408ffc87340a0fcada5389e06472a0910fcdf3d0a47d6dd6ec
MD5 94eebb25c4917a2a898453bdcdfc1ce1
BLAKE2b-256 3a955d64b9cceaa0fce87f8c94ed172391b4fa56e86e66baf2677a622fe1516f

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

Details for the file perpetual-0.6.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for perpetual-0.6.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7430f85f38e3b385fdb33f0fc3c47bae3c1feeb280a8665dbeb34bfd439934ce
MD5 1d6141f7230fb819ac592d7f1d874e64
BLAKE2b-256 8b330406d255f0afc762e5b25dc21c1eced40c9176acb12eb4757ce92fa0f91c

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

Details for the file perpetual-0.6.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for perpetual-0.6.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9f58657103d3e4c31cd57dc4d2d50e6a0daa6c4914c1462f522e094ccd8761fd
MD5 f61f4e555d5925d1ac390b26f24a02b1
BLAKE2b-256 ef5f3ea35ac8e2b4d7af6e89734ac09cca1fa4397a8f35c96f8fb5c9543a9716

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

Details for the file perpetual-0.6.1-cp310-none-win_amd64.whl.

File metadata

  • Download URL: perpetual-0.6.1-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 609.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for perpetual-0.6.1-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 8cf11d81fb06f71656653f31fadd53145283e09efd9dc13f3be27693a0422eb2
MD5 edbf7f71853b95fe454ccdd07a3c03a5
BLAKE2b-256 f52beb32549510203a9ac82c0be6f6e217fcacb372ec2ae280e95bf86abd6846

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp310-none-win_amd64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

Details for the file perpetual-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for perpetual-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 026ab60de600ae080f4cdd956273c13af1941b787f8b51a124fd5bcc30795acc
MD5 93c8b689b90139ce81e9dadd38c56bd8
BLAKE2b-256 7d6c602bc23bd9db4a55af82ca967073eea27fd6c70c2554a2213924d68f3ff4

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

Details for the file perpetual-0.6.1-cp39-none-win_amd64.whl.

File metadata

  • Download URL: perpetual-0.6.1-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 609.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for perpetual-0.6.1-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 e973f8d75578a5e5c7d48239a01efac9e9134ef0f144a7d8bc11c781bdbe881d
MD5 0c653c632ea44f8f7eb0084ef11da51e
BLAKE2b-256 225aae6bf08f6e38de9ec377cc6b8e788f2de9b0f896789e93e64f5e2905ff20

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp39-none-win_amd64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

Details for the file perpetual-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for perpetual-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae136ea50bcab4adbe6f635c67432ddf62d4e614175066dc56e1e6b53753a1b8
MD5 70219e154fc956965144f3cc845257bd
BLAKE2b-256 8b67e5a3911b394cd69b3f18e1dd35f1dbd76e4504efd61337991a2f8e8bac93

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

Supported by

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