Sequential model-based optimization toolbox.
Scikit-Optimize, or skopt, is a simple and efficient library to minimize (very) expensive and noisy black-box functions. It implements several methods for sequential model-based optimization. skopt aims to be accessible and easy to use in many contexts.
The library is built on top of NumPy, SciPy and Scikit-Learn.
We do not perform gradient-based optimization. For gradient-based optimization algorithms look at scipy.optimize here.
Approximated objective function after 50 iterations of gp_minimize. Plot made using skopt.plots.plot_objective.
The latest released version of scikit-optimize is v0.4, which you can install with:
pip install numpy # install numpy explicitly first pip install scikit-optimize
Find the minimum of the noisy function f(x) over the range -2 < x < 2 with skopt:
import numpy as np from skopt import gp_minimize def f(x): return (np.sin(5 * x) * (1 - np.tanh(x ** 2)) * np.random.randn() * 0.1) res = gp_minimize(f, [(-2.0, 2.0)])
For more control over the optimization loop you can use the skopt.Optimizer class:
from skopt import Optimizer opt = Optimizer([(-2.0, 2.0)]) for i in range(20): suggested = opt.ask() y = f(suggested) opt.tell(suggested, y) print('iteration:', i, suggested, y)
The development version can be installed through:
git clone https://github.com/scikit-optimize/scikit-optimize.git cd scikit-optimize pip install -e.
Run all tests by executing pytest in the top level directory.
To only run the subset of tests with low run time, you can use pytest -m 'fast_test'. On the other hand pytest -m 'slow_test' is also possible. To exclude all slow running tests try pytest -m 'not slow_test'.
This is implemented using pytest attributes. If a tests runs longer than 1 second, it is marked as slow, else as fast.
All contributors are welcome!
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|File Name & Checksum SHA256 Checksum Help||Version||File Type||Upload Date|
|scikit_optimize-0.4-py2.py3-none-any.whl (65.7 kB) Copy SHA256 Checksum SHA256||py2.py3||Wheel||Aug 21, 2017|
|scikit-optimize-0.4.tar.gz (52.8 kB) Copy SHA256 Checksum SHA256||–||Source||Aug 21, 2017|