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

Using conda-forge:

conda install conda-forge::perpetual

To use in a Rust project, add the following to your Cargo.toml file to get the package from crates.io.

perpetual = "0.7.0"

Contribution

Contributions are welcome. Check CONTRIBUTING.md for the guideline.

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 Distribution

perpetual-0.7.2.tar.gz (147.0 kB view details)

Uploaded Source

Built Distributions

perpetual-0.7.2-cp312-none-win_amd64.whl (621.2 kB view details)

Uploaded CPython 3.12 Windows x86-64

perpetual-0.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (884.2 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

perpetual-0.7.2-cp312-cp312-macosx_11_0_arm64.whl (623.7 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

perpetual-0.7.2-cp312-cp312-macosx_10_12_x86_64.whl (656.7 kB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

perpetual-0.7.2-cp311-none-win_amd64.whl (621.6 kB view details)

Uploaded CPython 3.11 Windows x86-64

perpetual-0.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (883.9 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

perpetual-0.7.2-cp311-cp311-macosx_11_0_arm64.whl (623.5 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

perpetual-0.7.2-cp311-cp311-macosx_10_12_x86_64.whl (658.4 kB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

perpetual-0.7.2-cp310-none-win_amd64.whl (621.8 kB view details)

Uploaded CPython 3.10 Windows x86-64

perpetual-0.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (884.3 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

perpetual-0.7.2-cp39-none-win_amd64.whl (622.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

perpetual-0.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (884.5 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

File details

Details for the file perpetual-0.7.2.tar.gz.

File metadata

  • Download URL: perpetual-0.7.2.tar.gz
  • Upload date:
  • Size: 147.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for perpetual-0.7.2.tar.gz
Algorithm Hash digest
SHA256 453ea3eb6eaf7a10db0f5fd4719ac23ef71cb2aaeb4a6741f9f15ca9751209b3
MD5 b3a9005ff7ccf12b013dfc82e1de468a
BLAKE2b-256 6b7706a1e15cb76f027f557e0d3850f36f7249719aad1565caa0a9dd1292ec9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.7.2.tar.gz:

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

  • Download URL: perpetual-0.7.2-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 621.2 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.7.2-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 256818589c7cc6db9d953ad4b3143decc7f1ae65ecbc1cf857e2b1a513ab0984
MD5 7a863d7dabd46502e3eb185c5fe09c2e
BLAKE2b-256 86dc52bf8e04fe3c17591754d3f578f1901a905f38cb3787b8edebcc9a324036

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eb89a9339a0558a85de7a9c1c7e338bc32db1e2fb47b8ceca55c8f874ae25c18
MD5 1a72c78b16e9bbbf45e44434e6e4d2e5
BLAKE2b-256 31632680b92539a6eaf4368bd41fc0408dbc1e997f6932057277e4c9895d7d8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.7.2-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.7.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for perpetual-0.7.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a3f0a3d1f467483cf353647c43e0722d27e535886353821a2774b5cada40d3c
MD5 359eb9b0e62bccd4217fb32b279014ed
BLAKE2b-256 61dbe3b5f6b81dd57227c7f3345cd7d459ead51677e2f7214744e842167da2e3

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 919f06f349aedb7a155dcd80de9e2b45a7f749b43b3c44d74d2bacd0bf0e2dc1
MD5 b0438bf734fd80801d3bfe89e6151392
BLAKE2b-256 da4afc73c3a37ac1eb25c0916351a8d8190ebee66371a8239f28317d0845ccf6

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

  • Download URL: perpetual-0.7.2-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 621.6 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.7.2-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 7a85c2fbf56d3e34e30e7bcc56bc4c0a13e5a3abbe91c02429896c03c5fbc0f0
MD5 ea282ad9f17eb7001cedd9e162205609
BLAKE2b-256 cd34743897de9ab101e2eeb4f952e410eb8319c289ad1459d3c811eeb48041c4

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c42f80f4d0d1ad1f214c7deb234175eb383b35177e57241b9d1c9734d6e8493b
MD5 f8c22fa4555479551e1757773e77eebf
BLAKE2b-256 7451d53c84e599a8a1a683e5b3a51f11b8fd6a04f02b6b7d7de0d1817c2f8fa1

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.7.2-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.7.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for perpetual-0.7.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18f2a6eb91645308217c865f94e7493eade3b956ae0fbaab8591be7bc1632c9a
MD5 e1ee650ff4d7ec7131263fc1ffe3eec6
BLAKE2b-256 5bb1f1dea1ca4f8fbd794273158ce1b11e3868b8352170211da1f0185a0d76d3

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7fae7af6ca1390b0c0b07093833cdb59cc193f239ec2b19965485ef745d7a740
MD5 56462f9606b1ca8190467eaf243491bf
BLAKE2b-256 2651759a01a44fadbf87edfe36c2e2292d17e5e1c7ffefd123ba4d691a9fb6e9

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

  • Download URL: perpetual-0.7.2-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 621.8 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.7.2-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 323eee25e6bea30d4a40ed0b44bf938fd7321d7bc9b4206c4b69f0d0827e86d0
MD5 1d17e68b52e16309092e07bceab20705
BLAKE2b-256 675ce3651475b1fe0d2c2710e19bc0e4b092097537d405adc395a308b0d2aff7

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 94c29cbdc473178c917aab2a1b9919a1378db3acd7763468e55cdb0123238db2
MD5 20354eb7344d27f6d9700edbc4317845
BLAKE2b-256 b1fdb597dcf4fa62dc00b0c511452a91674e0d0c6a1a3ddbc6b7321f71a37415

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.7.2-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.7.2-cp39-none-win_amd64.whl.

File metadata

  • Download URL: perpetual-0.7.2-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 622.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.7.2-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 43afa001dc41ebe36c78a2f06f253978bb9de083ba99bef8fe89d498e77e4807
MD5 bcdc61e4563d3e3414b33efb7440105f
BLAKE2b-256 2284c0edb734305bfd6c9008331ce3b6998862e30984a9b26c4c5ce0316d4dc7

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef98045bd84791216bd31d7fc61e4b6992aa11354f5926bebe005b8f6fa44c27
MD5 91261c0aca78ccaade811bd643e8c20e
BLAKE2b-256 c33bacc6e9772c2878f1813c9779f9a0f3a77f6eeaa34f84dfa7a5457b650aa5

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.7.2-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