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.