mlrose: Machine Learning, Randomized Optimization and SEarch
mlrose is a Python package for applying some of the most common randomized optimization and search algorithms to a range of different optimization problems, over both discrete- and continuous-valued parameter spaces.
Project Background
mlrose was initially developed to support students of Georgia Tech's OMSCS/OMSA offering of CS 7641: Machine Learning.
It includes implementations of all randomized optimization algorithms taught in this course, as well as functionality to apply these algorithms to integer-string optimization problems, such as N-Queens and the Knapsack problem; continuous-valued optimization problems, such as the neural network weight problem; and tour optimization problems, such as the Travelling Salesperson problem. It also has the flexibility to solve user-defined optimization problems.
At the time of development, there did not exist a single Python package that collected all of this functionality together in the one location.
Main Features
Randomized Optimization Algorithms
- Implementations of: hill climbing, randomized hill climbing, simulated annealing, genetic algorithm and (discrete) MIMIC;
- Solve both maximization and minimization problems;
- Define the algorithm's initial state or start from a random state;
- Define your own simulated annealing decay schedule or use one of three pre-defined, customizable decay schedules: geometric decay, arithmetic decay or exponential decay.
Problem Types
- Solve discrete-value (bit-string and integer-string), continuous-value and tour optimization (travelling salesperson) problems;
- Define your own fitness function for optimization or use a pre-defined function.
- Pre-defined fitness functions exist for solving the: One Max, Flip Flop, Four Peaks, Six Peaks, Continuous Peaks, Knapsack, Travelling Salesperson, N-Queens and Max-K Color optimization problems.
Machine Learning Weight Optimization
- Optimize the weights of neural networks, linear regression models and logistic regression models using randomized hill climbing, simulated annealing, the genetic algorithm or gradient descent;
- Supports classification and regression neural networks.
Installation
mlrose was written in Python 3 and requires NumPy, SciPy and Scikit-Learn (sklearn).
The latest released version is available at the Python package index and can be installed using pip:
pip install mlrose
Documentation
The official mlrose documentation can be found here.
A Jupyter notebook containing the examples used in the documentation is also available here.
Licensing, Authors, Acknowledgements
mlrose was written by Genevieve Hayes and is distributed under the 3-Clause BSD license.
You can cite mlrose in research publications and reports as follows:
- Hayes, G. (2019). mlrose: Machine Learning, Randomized Optimization and SEarch package for Python. https://github.com/gkhayes/mlrose. Accessed: day month year.
BibTeX entry:
@misc{Hayes19,
author = {Hayes, G},
title = {{mlrose: Machine Learning, Randomized Optimization and SEarch package for Python}},
year = 2019,
howpublished = {\url{https://github.com/gkhayes/mlrose}},
note = {Accessed: day month year}
}
Metadata
Release files for mlrose 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mlrose-1.3.0.tar.gz | 25.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mlrose-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.3 kB
Release files / mlrose-1.3.0.tar.gz
| Download URL | mlrose-1.3.0.tar.gz |
|---|---|
| Size | 25.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cec83253bf6da67a7fb32b2c9ae13e9dbc6cfbcaae2aa3107993e69e9788f15e
|
|
BLAKE2b-256 checksum How to use checksums |
2dd3d1e626bbc828aa2f3bbadb8a4616093cc09dd87f86f22603e90ddb410151
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
|
Release files / mlrose-1.3.0-py3-none-any.whl
| Download URL | mlrose-1.3.0-py3-none-any.whl |
|---|---|
| Size | 27.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
22b18ee249f1061160a8312806c3ccd39cb36eda629c531b0e2b3d2560da0204
|
|
BLAKE2b-256 checksum How to use checksums |
0df879e77a40f6e8988e3ecc9ead8a28024ee43df9c99fce2209037c9e6f9e4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
|