perpetual


Nameperpetual JSON
Version 0.0.5 PyPI version JSON
download
home_pagehttps://perpetual-ml.com/docs
SummaryA self-generalizing, hyperparameter-free gradient boosting machine
upload_time2024-06-08 19:51:16
maintainerNone
docs_urlNone
authorMutlu Simsek
requires_python>=3.8
licenseNone
keywords rust perpetual machine learning tree model decision tree gradient boosted decision tree gradient boosting machine
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <img  height="120" src="https://github.com/perpetual-ml/perpetual/raw/main/resources/perp_logo.png">
</p>

<div align="center">

[![Python Versions](https://img.shields.io/pypi/pyversions/perpetual.svg?logo=python&logoColor=white)](https://pypi.org/project/perpetual)
[![PyPI Version](https://img.shields.io/pypi/v/perpetual.svg?logo=pypi&logoColor=white)](https://pypi.org/project/perpetual)
[![Crates.io Version](https://img.shields.io/crates/v/perpetual?logo=rust&logoColor=white)](https://crates.io/crates/perpetual)

</div>

# 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 how the algorithm works.

## Usage

You can use the algorithm like in the example below. Check examples folders for both Rust and Python.

```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](https://perpetual-ml.github.io/perpetual/).

## Installation

The package can be installed directly from [pypi](https://pypi.org/project/perpetual/).

```shell
pip install perpetual
```

To use in a rust project, add the following to your Cargo.toml file.

```toml
perpetual = "0.0.5"
```


            

Raw data

            {
    "_id": null,
    "home_page": "https://perpetual-ml.com/docs",
    "name": "perpetual",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "rust, perpetual, machine learning, tree model, decision tree, gradient boosted decision tree, gradient boosting machine",
    "author": "Mutlu Simsek",
    "author_email": "Mutlu Simsek <msimsek@perpetual-ml.com>",
    "download_url": null,
    "platform": null,
    "description": "<p align=\"center\">\n  <img  height=\"120\" src=\"https://github.com/perpetual-ml/perpetual/raw/main/resources/perp_logo.png\">\n</p>\n\n<div align=\"center\">\n\n[![Python Versions](https://img.shields.io/pypi/pyversions/perpetual.svg?logo=python&logoColor=white)](https://pypi.org/project/perpetual)\n[![PyPI Version](https://img.shields.io/pypi/v/perpetual.svg?logo=pypi&logoColor=white)](https://pypi.org/project/perpetual)\n[![Crates.io Version](https://img.shields.io/crates/v/perpetual?logo=rust&logoColor=white)](https://crates.io/crates/perpetual)\n\n</div>\n\n# Perpetual\n\n## _A self-generalizing, hyperparameter-free gradient boosting machine_\n\nPerpetualBooster 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.\n\nHyperparameter 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.\n\nPerpetualBooster prevents overfitting with a generalization algorithm. The paper is work-in-progress to explain how the algorithm works.\n\n## Usage\n\nYou can use the algorithm like in the example below. Check examples folders for both Rust and Python.\n\n```python\nfrom perpetual import PerpetualBooster\n\nmodel = PerpetualBooster(objective=\"SquaredLoss\")\nmodel.fit(X, y, budget=0.4)\n```\n\n## Documentation\n\nDocumentation for the python API can be found [here](https://perpetual-ml.github.io/perpetual/).\n\n## Installation\n\nThe package can be installed directly from [pypi](https://pypi.org/project/perpetual/).\n\n```shell\npip install perpetual\n```\n\nTo use in a rust project, add the following to your Cargo.toml file.\n\n```toml\nperpetual = \"0.0.5\"\n```\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A self-generalizing, hyperparameter-free gradient boosting machine",
    "version": "0.0.5",
    "project_urls": {
        "Homepage": "https://perpetual-ml.com/docs",
        "Source Code": "https://github.com/perpetual-ml/perpetual"
    },
    "split_keywords": [
        "rust",
        " perpetual",
        " machine learning",
        " tree model",
        " decision tree",
        " gradient boosted decision tree",
        " gradient boosting machine"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fcb4136aade42218eb6cc0e7eb734ac399d0a3b942386f62c0b663894a14a1ac",
                "md5": "d411fc1939e8e250e5b4cd0fd7b915b7",
                "sha256": "2386a40bd08150f86177f304e9deafcb326076a4add1838bc54c73cfa3351fcb"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d411fc1939e8e250e5b4cd0fd7b915b7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 618430,
            "upload_time": "2024-06-08T19:51:16",
            "upload_time_iso_8601": "2024-06-08T19:51:16.762731Z",
            "url": "https://files.pythonhosted.org/packages/fc/b4/136aade42218eb6cc0e7eb734ac399d0a3b942386f62c0b663894a14a1ac/perpetual-0.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0e209ba3cf284a79e30d8f53f0cc5ee1d973d8ec51a3cd3e04d917c1a980ff51",
                "md5": "27fce76ada163106b18a873730ab32b9",
                "sha256": "3bc4957c6a33cf3a471bea1ca1df60dc9fa36bf9f48f119daa28fd3aa5a29db3"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp310-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "27fce76ada163106b18a873730ab32b9",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 520326,
            "upload_time": "2024-06-08T19:51:18",
            "upload_time_iso_8601": "2024-06-08T19:51:18.536138Z",
            "url": "https://files.pythonhosted.org/packages/0e/20/9ba3cf284a79e30d8f53f0cc5ee1d973d8ec51a3cd3e04d917c1a980ff51/perpetual-0.0.5-cp310-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5f65aaaa797981ef4cf5b6af2f60122c9d3a10b04760d7dcbdc6cace1ef1695a",
                "md5": "743f84e3b7914d1ad573ab757a5f76c2",
                "sha256": "9635cf1c73ff19a8d61621683336d4993a5bf7772ce816c746f809526470ac1e"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "743f84e3b7914d1ad573ab757a5f76c2",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 546363,
            "upload_time": "2024-06-08T19:51:19",
            "upload_time_iso_8601": "2024-06-08T19:51:19.683641Z",
            "url": "https://files.pythonhosted.org/packages/5f/65/aaaa797981ef4cf5b6af2f60122c9d3a10b04760d7dcbdc6cace1ef1695a/perpetual-0.0.5-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d7b4ee6321f015887f8e4f2dcd451a8ae6bf93a979016446e3d7771ef80217f2",
                "md5": "96c442c219c10884d85a63f6ddcfc355",
                "sha256": "64e827ad4280bfac2470afbf6121b1383e7780a333a225a64234c6ea181cabe8"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "96c442c219c10884d85a63f6ddcfc355",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 618972,
            "upload_time": "2024-06-08T19:51:21",
            "upload_time_iso_8601": "2024-06-08T19:51:21.282951Z",
            "url": "https://files.pythonhosted.org/packages/d7/b4/ee6321f015887f8e4f2dcd451a8ae6bf93a979016446e3d7771ef80217f2/perpetual-0.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "830dba7baa7d085d12d83b10550250536956f42714b8f4d9565c1405e0118893",
                "md5": "1c89524ce640cd4a42a3c15bdcc2492a",
                "sha256": "9295fff9c07f74adb388688a77eed2c0666852143c52ffb2dde38675a6e87338"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp311-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1c89524ce640cd4a42a3c15bdcc2492a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 520469,
            "upload_time": "2024-06-08T19:51:22",
            "upload_time_iso_8601": "2024-06-08T19:51:22.978879Z",
            "url": "https://files.pythonhosted.org/packages/83/0d/ba7baa7d085d12d83b10550250536956f42714b8f4d9565c1405e0118893/perpetual-0.0.5-cp311-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ea79473faf065c1badc565cb6695d1d9c5e5140ea531669895a98309073ef5a2",
                "md5": "410013a28f5bbb7ba1bab15d3b691853",
                "sha256": "ea39c355e806f180fbf7436b618c7c9b9c70046be7db7fb029a8bb0e6f156c90"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "410013a28f5bbb7ba1bab15d3b691853",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 545398,
            "upload_time": "2024-06-08T19:51:24",
            "upload_time_iso_8601": "2024-06-08T19:51:24.557082Z",
            "url": "https://files.pythonhosted.org/packages/ea/79/473faf065c1badc565cb6695d1d9c5e5140ea531669895a98309073ef5a2/perpetual-0.0.5-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b5b8fd3c933ffd8013bf295abb863ba1fd6aac08986d3a6855ec78ee7c6cf26f",
                "md5": "96a3903ad81a961e70b692f1d77955cc",
                "sha256": "db0f5673bb121f165bba4d39c2f544cd9d72d45e1f4f50322486c74c11fb01d6"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "96a3903ad81a961e70b692f1d77955cc",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 618018,
            "upload_time": "2024-06-08T19:51:26",
            "upload_time_iso_8601": "2024-06-08T19:51:26.075002Z",
            "url": "https://files.pythonhosted.org/packages/b5/b8/fd3c933ffd8013bf295abb863ba1fd6aac08986d3a6855ec78ee7c6cf26f/perpetual-0.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "48ad8772c35a735c278c717b1ddd7b79165d6d0ea7c9a024696cd5e8df86e60d",
                "md5": "aa4dc43b8dab39a6c211bce9667b3943",
                "sha256": "f09c968a76a7c3cd6cfbde73a63d26792fe8837b52eef40c6f9cb984e60a1db8"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp312-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "aa4dc43b8dab39a6c211bce9667b3943",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 520961,
            "upload_time": "2024-06-08T19:51:28",
            "upload_time_iso_8601": "2024-06-08T19:51:28.081717Z",
            "url": "https://files.pythonhosted.org/packages/48/ad/8772c35a735c278c717b1ddd7b79165d6d0ea7c9a024696cd5e8df86e60d/perpetual-0.0.5-cp312-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8384eb96da636da71518c64c54d339041d651a87866fed4a8c97cf683129a5df",
                "md5": "71aad38777415c2d1ed7d578d4cfabe3",
                "sha256": "357b18b03acd8d6161016458c8cbc2500cf2d5457060463d41ce2b28875dba76"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "71aad38777415c2d1ed7d578d4cfabe3",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 619147,
            "upload_time": "2024-06-08T19:51:29",
            "upload_time_iso_8601": "2024-06-08T19:51:29.183038Z",
            "url": "https://files.pythonhosted.org/packages/83/84/eb96da636da71518c64c54d339041d651a87866fed4a8c97cf683129a5df/perpetual-0.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "54fb41be27e7271fbd797e503d13640a5929743ba7af3e50349c563605379bd5",
                "md5": "67c435e79d8ceff76a9f78b941e32202",
                "sha256": "c86bd32fa7b36414227432b3b088dbcdbc017460dc06ac834fb5d1efde73dadd"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp38-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "67c435e79d8ceff76a9f78b941e32202",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 520249,
            "upload_time": "2024-06-08T19:51:30",
            "upload_time_iso_8601": "2024-06-08T19:51:30.834315Z",
            "url": "https://files.pythonhosted.org/packages/54/fb/41be27e7271fbd797e503d13640a5929743ba7af3e50349c563605379bd5/perpetual-0.0.5-cp38-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "45bd73248493845e329a5b6a1e92f2c08ce87696b574b5abe7bdae8296bb9691",
                "md5": "52f695604b25a9771fc71eacb09c70a3",
                "sha256": "e1d3d43ce52731b843e165cb413b0c7190304ef69bfb5ffa5815b5285eab60b0"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "52f695604b25a9771fc71eacb09c70a3",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 619374,
            "upload_time": "2024-06-08T19:51:32",
            "upload_time_iso_8601": "2024-06-08T19:51:32.313925Z",
            "url": "https://files.pythonhosted.org/packages/45/bd/73248493845e329a5b6a1e92f2c08ce87696b574b5abe7bdae8296bb9691/perpetual-0.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7a24bf0b8a375c431be7702d970afd7ebb3e22ad282ef4b5eaaa6fa96c346bc5",
                "md5": "20b6042758d3adc7e96001c2d55c752c",
                "sha256": "6864aa27fc7eb0808dfaa22849f58cb58f9b8bea3400a663446fcb7c3eea0730"
            },
            "downloads": -1,
            "filename": "perpetual-0.0.5-cp39-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "20b6042758d3adc7e96001c2d55c752c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 520067,
            "upload_time": "2024-06-08T19:51:33",
            "upload_time_iso_8601": "2024-06-08T19:51:33.967544Z",
            "url": "https://files.pythonhosted.org/packages/7a/24/bf0b8a375c431be7702d970afd7ebb3e22ad282ef4b5eaaa6fa96c346bc5/perpetual-0.0.5-cp39-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-08 19:51:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "perpetual-ml",
    "github_project": "perpetual",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "perpetual"
}
        
Elapsed time: 0.25859s