Skip to main content

mloptimizer is a Python library for optimizing hyperparameters of machine learning algorithms using genetic algorithms.

Project description

mloptimizer_banner

Documentation Status PyPI version PyPI pyversions Tests Coverage Status Shield: Buy me a coffee

mloptimizer is a Python library for optimizing hyperparameters of machine learning algorithms using genetic algorithms. With mloptimizer, you can find the optimal set of hyperparameters for a given machine learning model and dataset, which can significantly improve the performance of the model. The library supports several popular machine learning algorithms, including decision trees, random forests, and gradient boosting classifiers. The genetic algorithm used in mloptimizer provides an efficient and flexible approach to search for the optimal hyperparameters in a large search space.

Features

  • Easy to use
  • DEAP-based genetic algorithm ready to use with several machine learning algorithms
  • Adaptable to use with any machine learning algorithm that complies with the Scikit-Learn API
  • Default hyperparameter ranges
  • Default score functions for evaluating the performance of the model
  • Reproducibility of results

Advanced Features

  • Extensible with more machine learning algorithms that comply with the Scikit-Learn API
  • Customizable hyperparameter ranges
  • Customizable score functions
  • Optional mlflow compatibility for tracking the optimization process

Installation

It is recommended to create a virtual environment using the venv package. To learn more about how to use venv, check out the official Python documentation at https://docs.python.org/3/library/venv.html.

# Create the virtual environment
python -m venv myenv
# Activate the virtual environment
source myenv/bin/activate

To install mloptimizer, run:

pip install mloptimizer

You can get more information about the package installation at https://pypi.org/project/mloptimizer/.

Quickstart

Here's a simple example of how to optimize hyperparameters in a decision tree classifier using the iris dataset:

from mloptimizer.interfaces import GeneticSearch, HyperparameterSpaceBuilder
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris

# 1) Load the dataset and get the features and target
X, y = load_iris(return_X_y=True)

# 2) Define the hyperparameter space (a default space is provided for some algorithms)
hyperparameter_space = HyperparameterSpaceBuilder.get_default_space(DecisionTreeClassifier)

# 3) Create the optimizer and optimize the classifier
# - 10 generations starting with a population of 10 individuals, other parameters are set to default

opt = GeneticSearch(estimator_class=DecisionTreeClassifier,
                    hyperparam_space=hyperparameter_space,
                    genetic_params_dict={"generations": 5, "population_size": 5}
                    )

# 4) Optimize the classifier, the optimization returns the best estimator found in the optimization process
opt.fit(X, y)

print(opt.best_estimator_)

Other algorithms can be used, such as RandomForestClassifier or XGBClassifier which have a default hyperparameter space defined in the library. Even if the algorithm is not included in the default hyperparameter space, you can define your own hyperparameter space following the documentation.

More details in the documentation.

Examples

Examples can be found in examples on readthedocs.io.

Dependencies

The following dependencies are used in mloptimizer:

  • Deap - Genetic Algorithms
  • XGBoost - Gradient boosting classifier
  • Scikit-Learn - Machine learning algorithms and utilities

Optional:

  • Keras - Deep learning library
  • mlflow - Tracking the optimization process

Documentation

The documentation for mloptimizer can be found in the project's wiki with examples, classes and methods reference.

Authors

  • Antonio Caparrini - Author - caparrini
  • Javier Arroyo Gallardo - Author - javiag

Analytics

Alt

License

This project is licensed under the MIT License.

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

mloptimizer-0.9.0.4.tar.gz (50.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mloptimizer-0.9.0.4-py3-none-any.whl (66.9 kB view details)

Uploaded Python 3

File details

Details for the file mloptimizer-0.9.0.4.tar.gz.

File metadata

  • Download URL: mloptimizer-0.9.0.4.tar.gz
  • Upload date:
  • Size: 50.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mloptimizer-0.9.0.4.tar.gz
Algorithm Hash digest
SHA256 2838a8ff84f644d162821da5ab7cf7e7d62d602840a18a6664b4bad4382dd5e4
MD5 b6f743fd79f4aebd75ac29cac548d739
BLAKE2b-256 f10c9a693be81de31a49ef304e10a46bdcaf427a3ed6215f838bf29486ac0e61

See more details on using hashes here.

File details

Details for the file mloptimizer-0.9.0.4-py3-none-any.whl.

File metadata

  • Download URL: mloptimizer-0.9.0.4-py3-none-any.whl
  • Upload date:
  • Size: 66.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mloptimizer-0.9.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2df0986cf5e9d078104525023ba6e1ce396b5dfe3f4b2c701199c50fa58ae965
MD5 9954447e72ccec906e0ecf1ef9f1fd27
BLAKE2b-256 55264337afe7b194f8a019e69e87a907726b371f4ac82c1659fe662506d849bd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page