# 5. `skopt`

’s top level minimization functions¶

These are easy to get started with. They mirror the `scipy.optimize`

API and provide a high level interface to various pre-configured
optimizers.

## 5.1. `dummy_minimize`

¶

Random search by uniform sampling within the given bounds.

## 5.2. `forest_minimize`

¶

Sequential optimisation using decision trees.

A tree based regression model is used to model the expensive to evaluate
function `func`

. The model is improved by sequentially evaluating
the expensive function at the next best point. Thereby finding the
minimum of `func`

with as few evaluations as possible.

## 5.3. `gbrt_minimize`

¶

Sequential optimization using gradient boosted trees.

Gradient boosted regression trees are used to model the (very)
expensive to evaluate function `func`

. The model is improved
by sequentially evaluating the expensive function at the next
best point. Thereby finding the minimum of `func`

with as
few evaluations as possible.

## 5.4. `gp_minimize`

¶

Bayesian optimization using Gaussian Processes.

If every function evaluation is expensive, for instance when the parameters are the hyperparameters of a neural network and the function evaluation is the mean cross-validation score across ten folds, optimizing the hyperparameters by standard optimization routines would take for ever!

The idea is to approximate the function using a Gaussian process. In other words the function values are assumed to follow a multivariate gaussian. The covariance of the function values are given by a GP kernel between the parameters. Then a smart choice to choose the next parameter to evaluate can be made by the acquisition function over the Gaussian prior which is much quicker to evaluate.