.. currentmodule:: skopt =============== Getting started =============== 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 `_. .. figure:: https://rawgit.com/scikit-optimize/scikit-optimize/master/media/bo-objective.png :alt: Approximated objective Approximated objective function after 50 iterations of :class:`gp_minimize`. Plot made using :class:`plots.plot_objective`. Finding a minimum ================= Find the minimum of the noisy function ``f(x)`` over the range ``-2 < x < 2`` with :class:`skopt`:: import numpy as np from skopt import gp_minimize def f(x): return (np.sin(5 * x[0]) * (1 - np.tanh(x[0] ** 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 :class:`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) For more read our :ref:`sphx_glr_auto_examples_bayesian-optimization.py` and the other `examples `_.