<p align="center">
<img height="150px" src="docs/img/logo.png" alt="incremental dl logo">
</p>
<p align="center">
EvO AutoML is a Python library for Evolution based Online AutoML.
EvO AutoML ambition is to enable hyperparameter optimization for <a href="https://www.wikiwand.com/en/Online_machine_learning">online machine learning</a> pipelines build on <a href="https://riverml.xyz/latest/">river</a>.
</p>
<p align="center">
<img alt="PyPI" src="https://img.shields.io/pypi/v/EvoAutoML">
<a href="https://codecov.io/gh/kulbachcedric/EvOAutoML" >
<img src="https://codecov.io/gh/kulbachcedric/EvOAutoML/branch/master/graph/badge.svg?token=7RIEXKNR6K"/>
</a>
<img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dw/EvOAutoML">
<img alt="GitHub" src="https://img.shields.io/github/license/kulbachcedric/EvoAutoML">
</p>
# EvO AutoML
EvO AutoML is a Python library for Evolution based Online AutoML.
## 💈 Installation
Use the package manager [pip](https://pip.pypa.io/en/stable/) to install EvoAutoML.
```bash
pip install evoautoml
```
You can install the latest development version from GitHub as so:
```shell
pip install https://github.com/kulbachcedric/EvOAutoML//archive/refs/heads/master.zip
```
## 🍫 Quickstart
### Classification
```python
>>> from river import datasets, ensemble, evaluate, metrics, compose, optim
>>> from river import preprocessing, neighbors, naive_bayes, tree, linear_model
>>> from EvOAutoML import classification, pipelinehelper
>>> dataset = datasets.Phishing()
>>> model_pipeline = compose.Pipeline(
... ('Scaler', pipelinehelper.PipelineHelperTransformer([
... ('StandardScaler', preprocessing.StandardScaler()),
... ('MinMaxScaler', preprocessing.MinMaxScaler()),
... ('MinAbsScaler', preprocessing.MaxAbsScaler()),
... ])),
... ('Classifier', pipelinehelper.PipelineHelperClassifier([
... ('HT', tree.HoeffdingTreeClassifier()),
... ('LR', linear_model.LogisticRegression()),
... ('GNB', naive_bayes.GaussianNB()),
... ('KNN', neighbors.KNNClassifier()),
... ])))
>>> model = classification.EvolutionaryBaggingClassifier(
... model=model_pipeline,
... param_grid={
... 'Scaler': model_pipeline.steps['Scaler'].generate({}),
... 'Classifier': model_pipeline.steps['Classifier'].generate({
... 'HT__max_depth': [10, 30, 60, 10, 30, 60],
... 'HT__grace_period': [10, 100, 200, 10, 100, 200],
... 'HT__max_size': [5, 10],
... 'LR__l2': [.0,.01,.001],
... 'KNN__n_neighbors': [1, 5, 20],
... 'KNN__window_size': [100, 500, 1000],
... 'KNN__weighted': [True, False],
... 'KNN__p': [1, 2],
... })
... },
... seed=42
... )
>>> metric = metrics.F1()
>>> for x, y in dataset:
... y_pred = model.predict_one(x) # make a prediction
... metric = metric.update(y, y_pred) # update the metric
... model = model.learn_one(x,y) # make the model learn
```
## 📚 Cite
```
@inproceedings{DBLP:conf/pakdd/KulbachMBHB22,
author = {Cedric Kulbach and
Jacob Montiel and
Maroua Bahri and
Marco Heyden and
Albert Bifet},
editor = {Jo{\~{a}}o Gama and
Tianrui Li and
Yang Yu and
Enhong Chen and
Yu Zheng and
Fei Teng},
title = {Evolution-Based Online Automated Machine Learning},
booktitle = {Advances in Knowledge Discovery and Data Mining - 26th Pacific-Asia
Conference, {PAKDD} 2022, Chengdu, China, May 16-19, 2022, Proceedings,
Part {I}},
series = {Lecture Notes in Computer Science},
volume = {13280},
pages = {472--484},
publisher = {Springer},
year = {2022},
url = {https://doi.org/10.1007/978-3-031-05933-9\_37},
doi = {10.1007/978-3-031-05933-9\_37},
timestamp = {Tue, 17 May 2022 15:53:17 +0200},
biburl = {https://dblp.org/rec/conf/pakdd/KulbachMBHB22.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
```
## 🏫 Affiliations
<p align="center">
<img src="https://upload.wikimedia.org/wikipedia/de/thumb/4/44/Fzi_logo.svg/1200px-Fzi_logo.svg.png?raw=true" alt="FZI Logo" height="200"/>
</p>
Raw data
{
"_id": null,
"home_page": "https://github.com/kulbachcedric/EvoAutoML",
"name": "EvOAutoML",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6.0",
"maintainer_email": "",
"keywords": "",
"author": "Cedric Kulbach",
"author_email": "cedric.kulbach@googlemail.com",
"download_url": "https://files.pythonhosted.org/packages/86/c0/c34a3b58846a409cf5b155fd7339e6c87550060f6c2a6a78648f8c6318e1/EvOAutoML-0.0.14.tar.gz",
"platform": null,
"description": "\n<p align=\"center\">\n <img height=\"150px\" src=\"docs/img/logo.png\" alt=\"incremental dl logo\">\n</p>\n\n<p align=\"center\">\n EvO AutoML is a Python library for Evolution based Online AutoML.\n EvO AutoML ambition is to enable hyperparameter optimization for <a href=\"https://www.wikiwand.com/en/Online_machine_learning\">online machine learning</a> pipelines build on <a href=\"https://riverml.xyz/latest/\">river</a>.\n</p>\n<p align=\"center\">\n <img alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/EvoAutoML\">\n <a href=\"https://codecov.io/gh/kulbachcedric/EvOAutoML\" >\n <img src=\"https://codecov.io/gh/kulbachcedric/EvOAutoML/branch/master/graph/badge.svg?token=7RIEXKNR6K\"/>\n </a>\n <img alt=\"PyPI - Downloads\" src=\"https://img.shields.io/pypi/dw/EvOAutoML\">\n <img alt=\"GitHub\" src=\"https://img.shields.io/github/license/kulbachcedric/EvoAutoML\"> \n\n</p>\n\n# EvO AutoML\n\nEvO AutoML is a Python library for Evolution based Online AutoML.\n\n## \ud83d\udc88 Installation\n\nUse the package manager [pip](https://pip.pypa.io/en/stable/) to install EvoAutoML.\n\n```bash\npip install evoautoml\n```\n\nYou can install the latest development version from GitHub as so:\n```shell\npip install https://github.com/kulbachcedric/EvOAutoML//archive/refs/heads/master.zip\n```\n## \ud83c\udf6b Quickstart\n### Classification\n\n```python\n\n>>> from river import datasets, ensemble, evaluate, metrics, compose, optim\n>>> from river import preprocessing, neighbors, naive_bayes, tree, linear_model\n>>> from EvOAutoML import classification, pipelinehelper\n>>> dataset = datasets.Phishing()\n>>> model_pipeline = compose.Pipeline(\n... ('Scaler', pipelinehelper.PipelineHelperTransformer([\n... ('StandardScaler', preprocessing.StandardScaler()),\n... ('MinMaxScaler', preprocessing.MinMaxScaler()),\n... ('MinAbsScaler', preprocessing.MaxAbsScaler()),\n... ])),\n... ('Classifier', pipelinehelper.PipelineHelperClassifier([\n... ('HT', tree.HoeffdingTreeClassifier()),\n... ('LR', linear_model.LogisticRegression()),\n... ('GNB', naive_bayes.GaussianNB()),\n... ('KNN', neighbors.KNNClassifier()),\n... ])))\n>>> model = classification.EvolutionaryBaggingClassifier(\n... model=model_pipeline,\n... param_grid={\n... 'Scaler': model_pipeline.steps['Scaler'].generate({}),\n... 'Classifier': model_pipeline.steps['Classifier'].generate({\n... 'HT__max_depth': [10, 30, 60, 10, 30, 60],\n... 'HT__grace_period': [10, 100, 200, 10, 100, 200],\n... 'HT__max_size': [5, 10],\n... 'LR__l2': [.0,.01,.001],\n... 'KNN__n_neighbors': [1, 5, 20],\n... 'KNN__window_size': [100, 500, 1000],\n... 'KNN__weighted': [True, False],\n... 'KNN__p': [1, 2],\n... })\n... },\n... seed=42\n... )\n>>> metric = metrics.F1()\n>>> for x, y in dataset:\n... y_pred = model.predict_one(x) # make a prediction\n... metric = metric.update(y, y_pred) # update the metric\n... model = model.learn_one(x,y) # make the model learn\n\n```\n\n## \ud83d\udcda Cite\n```\n@inproceedings{DBLP:conf/pakdd/KulbachMBHB22,\n author = {Cedric Kulbach and\n Jacob Montiel and\n Maroua Bahri and\n Marco Heyden and\n Albert Bifet},\n editor = {Jo{\\~{a}}o Gama and\n Tianrui Li and\n Yang Yu and\n Enhong Chen and\n Yu Zheng and\n Fei Teng},\n title = {Evolution-Based Online Automated Machine Learning},\n booktitle = {Advances in Knowledge Discovery and Data Mining - 26th Pacific-Asia\n Conference, {PAKDD} 2022, Chengdu, China, May 16-19, 2022, Proceedings,\n Part {I}},\n series = {Lecture Notes in Computer Science},\n volume = {13280},\n pages = {472--484},\n publisher = {Springer},\n year = {2022},\n url = {https://doi.org/10.1007/978-3-031-05933-9\\_37},\n doi = {10.1007/978-3-031-05933-9\\_37},\n timestamp = {Tue, 17 May 2022 15:53:17 +0200},\n biburl = {https://dblp.org/rec/conf/pakdd/KulbachMBHB22.bib},\n bibsource = {dblp computer science bibliography, https://dblp.org}\n}\n```\n## \ud83c\udfeb Affiliations\n\n<p align=\"center\">\n <img src=\"https://upload.wikimedia.org/wikipedia/de/thumb/4/44/Fzi_logo.svg/1200px-Fzi_logo.svg.png?raw=true\" alt=\"FZI Logo\" height=\"200\"/>\n</p>\n\n",
"bugtrack_url": null,
"license": "BSD-3",
"summary": "Online Automated Machine Learning for river",
"version": "0.0.14",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "043711d519e759d254a6a2a603334557",
"sha256": "bba1f2d0153a9429a5bb5138b9b5c43b11c14b11105e660c4e1c433e86ac0378"
},
"downloads": -1,
"filename": "EvOAutoML-0.0.14-py3-none-any.whl",
"has_sig": false,
"md5_digest": "043711d519e759d254a6a2a603334557",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 18014,
"upload_time": "2022-12-11T14:25:02",
"upload_time_iso_8601": "2022-12-11T14:25:02.171502Z",
"url": "https://files.pythonhosted.org/packages/17/78/58445ef5bf64b0d2d2318e57687f212c8cc0cd8c92bc1c1bd23bd7fecf6f/EvOAutoML-0.0.14-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "f4292e91198bdfd769aed40b8c5b01da",
"sha256": "9819ab5f18cb734d6177ef272b3e4746cde2ec48bd4ee506736f02b1c191d958"
},
"downloads": -1,
"filename": "EvOAutoML-0.0.14.tar.gz",
"has_sig": false,
"md5_digest": "f4292e91198bdfd769aed40b8c5b01da",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 14283,
"upload_time": "2022-12-11T14:25:03",
"upload_time_iso_8601": "2022-12-11T14:25:03.846256Z",
"url": "https://files.pythonhosted.org/packages/86/c0/c34a3b58846a409cf5b155fd7339e6c87550060f6c2a6a78648f8c6318e1/EvOAutoML-0.0.14.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-11 14:25:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "kulbachcedric",
"github_project": "EvoAutoML",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "evoautoml"
}