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.3"

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.3.tar.gz (147.4 kB view details)

Uploaded Source

Built Distributions

perpetual-0.7.3-cp312-none-win_amd64.whl (622.6 kB view details)

Uploaded CPython 3.12 Windows x86-64

perpetual-0.7.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (884.5 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

perpetual-0.7.3-cp312-cp312-macosx_11_0_arm64.whl (624.1 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

perpetual-0.7.3-cp312-cp312-macosx_10_12_x86_64.whl (658.0 kB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

perpetual-0.7.3-cp311-none-win_amd64.whl (623.4 kB view details)

Uploaded CPython 3.11 Windows x86-64

perpetual-0.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (884.1 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

perpetual-0.7.3-cp311-cp311-macosx_11_0_arm64.whl (624.4 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

perpetual-0.7.3-cp311-cp311-macosx_10_12_x86_64.whl (659.5 kB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

perpetual-0.7.3-cp310-none-win_amd64.whl (623.0 kB view details)

Uploaded CPython 3.10 Windows x86-64

perpetual-0.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (884.2 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

perpetual-0.7.3-cp39-none-win_amd64.whl (623.9 kB view details)

Uploaded CPython 3.9 Windows x86-64

perpetual-0.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (884.6 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

File details

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

File metadata

  • Download URL: perpetual-0.7.3.tar.gz
  • Upload date:
  • Size: 147.4 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.3.tar.gz
Algorithm Hash digest
SHA256 c1285d4b8f3511bb0511190a5f3d5dc0fa728dd95828084816adc5b61f440c20
MD5 6f151d916ff47283f4c64eb7ecc26447
BLAKE2b-256 1efacbdc312558d90aec3b9b536675f548e997633385ef72a772389a3b2ee048

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

  • Download URL: perpetual-0.7.3-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 622.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.7.3-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 f7fa4847908ad7234eabb2ac997c0bc7627c3b450c1b5dbad585ce064185e0ee
MD5 54971dffcc6653fd33921a398dfeb89c
BLAKE2b-256 6b5c33ff568d742768c2f00ae07027a5fbcf470eaf6c256c7df1634b3b35a60a

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6081680e3227e5475b4a356a3ae8621c08d4aefa3c028c01cd0a2cd4a6d9aa49
MD5 ef68b733a20e69adf4cb609b0b01d802
BLAKE2b-256 e99839f01541f35cf8dd1c29c80d78b729a1b031bfa4d2c8931dac3505d07ce5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for perpetual-0.7.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 758de614efc1cd95f19e9f583e1426c828b156ad676f170e6159573677852cd8
MD5 8139540dd8b979c5efcad1314eaa921a
BLAKE2b-256 695dc103763e03707eb0a4cd6b18aa311ca2d1e322884dfb0fb9683c87279826

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cc0d8b8a09bd587760ac881a369b1377157e58decde884731333bb0120154e2e
MD5 f0c9213cb8f76bccee583957fd118661
BLAKE2b-256 9f917d304808b58e945428f04ad9dd3029fb339ab006d37a5626f0ee88e0db68

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.7.3-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.3-cp311-none-win_amd64.whl.

File metadata

  • Download URL: perpetual-0.7.3-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 623.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.7.3-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 466bbadb41fa25e7cfee802e0621a9fd95431cb6def94c4944ae11cfe54bd7a7
MD5 308028fdeba2297f11ba21ebc1b1debf
BLAKE2b-256 cef7641f07f5ec796c90b115590969aaafb786bd0eac2793fc8f207a744be8b3

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7021fe4e2a34385674296e2c05b38e4758bcfe0b582dfa0e511871e76c98e30
MD5 2f4a8308a1dd51fc3105a8bdd9128d22
BLAKE2b-256 80c9a6e9c8884ceabc97c8601cf9987158bed407908b3e6ab47bc4c759fcff4e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for perpetual-0.7.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b2e2094404882ad14423df212adf00d222451ceca668d98784649b2d416160ca
MD5 b63daee8d4f7299381fae44f60ad55af
BLAKE2b-256 3e9da57e279699a1e9346c8903bc8417274524a373c204559a99b997fbd45bde

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 26765f6042131c93a5191a13157859d582169676540ca96d80ebd509798c4898
MD5 593b5b9e177b47d9a8e9c15d64eefc76
BLAKE2b-256 83bc5e5cebbe0fce1d81515e779bca3c77f3b03f44ce8794254f03ce648cccd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for perpetual-0.7.3-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.3-cp310-none-win_amd64.whl.

File metadata

  • Download URL: perpetual-0.7.3-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 623.0 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.3-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 64a83a3468654e21d7ac3ab7bd621af9451cd39f2af31fb73e91cd9b77545a0c
MD5 1d53a4e6c80af0676e4ec1317806cf56
BLAKE2b-256 006d479bf85335eee36af1d4a7a301867644a3b130ca0e16974b96c456f945b3

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dd8ba3ee7620283ac87930bcef6f02f99d421b1a6c43a6aae2b562db1b2f69c3
MD5 ea863eaa6fa588625f0bd081fba0afda
BLAKE2b-256 863eb81c95a5186d65c6b5ef19a86fc3db829e2f72f76f1e319fb37e9b531cef

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: perpetual-0.7.3-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 623.9 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.3-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 43f8f024768af4acf9f314352e23bcd15b6a5acb85cf37efe702a1b4f931ed1b
MD5 7a4567c4196e5546e3c804d67be5b58c
BLAKE2b-256 8cc55dc133c4603cd0d22e13acb135c883b2fb1dc0cee4579d4e9b4c34117e08

See more details on using hashes here.

Provenance

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

Publisher: CI.yml on perpetual-ml/perpetual

Attestations:

File details

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

File metadata

File hashes

Hashes for perpetual-0.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 56a9d5dcdd8f4a09f00bdd90c83b47fd3542a20402e7ff22e9d6efdfa79821ae
MD5 8e7854786edfe168352c311aadd5d44b
BLAKE2b-256 19f7f40e78303ff9ab0234bbe61cbd98b751776831dc94d4ba2bea2d1f8c10d8

See more details on using hashes here.

Provenance

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