bayes_opt.acquisition.GPHedge

class bayes_opt.acquisition.GPHedge(base_acquisitions: Sequence[AcquisitionFunction], random_state: int | RandomState | None = None) None

GPHedge acquisition function.

At each suggestion step, GPHedge samples suggestions from each base acquisition function acq_i. Then a candidate is selected from the suggestions based on the on the cumulative rewards of each acq_i. After evaluating the candidate, the gains are updated (in the next iteration) based on the updated expectation value of the candidates.

For more information, see:

Brochu et al., “Portfolio Allocation for Bayesian Optimization”, https://arxiv.org/abs/1009.5419

Parameters:
base_acquisitions : Sequence[AcquisitionFunction]

Sequence of base acquisition functions.

random_state : int, RandomState, default None

Set the random state for reproducibility.

base_acq(*args: Any, **kwargs: Any) NoReturn

Raise an error, since the base acquisition function is ambiguous.

Return type:

NoReturn

Parameters:
args : Any

kwargs : Any

suggest(gp: GaussianProcessRegressor, target_space: TargetSpace, n_random: int = 10000, n_l_bfgs_b: int = 10, fit_gp: bool = True) ndarray[Any, dtype[floating[Any]]]

Suggest a promising point to probe next.

Parameters:
gp : GaussianProcessRegressor

A fitted Gaussian Process.

target_space : TargetSpace

The target space to probe.

n_random : int, default 10_000

Number of random samples to use.

n_l_bfgs_b : int, default 10

Number of starting points for the L-BFGS-B optimizer.

fit_gp : bool, default True

Whether to fit the Gaussian Process to the target space. Set to False if the GP is already fitted.

Return type:

ndarray[Any, dtype[floating[Any]]]

Returns:

np.ndarray – Suggested point to probe next.