EvO AutoML is a Python library for Evolution based Online AutoML. EvO AutoML ambition is to enable hyperparameter optimization for online machine learning pipelines build on river.
EvO AutoML is a Python library for Evolution based Online AutoML.
Use the package manager pip to install EvoAutoML.
pip install evoautoml
You can install the latest development version from GitHub as so:
pip install https://github.com/kulbachcedric/EvOAutoML//archive/refs/heads/master.zip
>>> 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
@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}
}