bayeso.wrappers.wrappers_bo_class
It defines a wrapper class for Bayesian optimization.
- class bayeso.wrappers.wrappers_bo_class.BayesianOptimization(range_X: ndarray, fun_target: Callable, num_iter: int, str_surrogate: str = 'gp', str_cov: str = 'matern52', str_acq: str = 'ei', normalize_Y: bool = True, use_ard: bool = True, prior_mu: Callable | None = None, str_initial_method_bo: str = 'sobol', str_sampling_method_ao: str = 'sobol', str_optimizer_method_gp: str = 'BFGS', str_optimizer_method_tp: str = 'SLSQP', str_optimizer_method_bo: str = 'L-BFGS-B', str_mlm_method: str = 'regular', str_modelselection_method: str = 'ml', num_samples_ao: int = 128, str_exp: str = None, debug: bool = False)
Bases:
object
It is a wrapper class for Bayesian optimization. A function for optimizing fun_target runs a single round of Bayesian optimization with an iteration budget num_iter.
- Parameters:
range_X (numpy.ndarray) – a search space. Shape: (d, 2).
fun_target (callable) – a target function.
num_iter (int.) – an iteration budget for Bayesian optimization.
str_surrogate (str., optional) – the name of surrogate model.
str_cov (str., optional) – the name of covariance function.
str_acq (str., optional) – the name of acquisition function.
normalize_Y (bool., optional) – a flag for normalizing outputs.
use_ard (bool., optional) – a flag for automatic relevance determination.
prior_mu (NoneType, or callable, optional) – None, or a prior mean function.
str_initial_method_bo (str., optional) – the name of initialization method for sampling initial examples in Bayesian optimization.
str_sampling_method_ao (str., optional) – the name of sampling method for acquisition function optimization.
str_optimizer_method_gp (str., optional) – the name of optimization method for Gaussian process regression.
str_optimizer_method_bo (str., optional) – the name of optimization method for Bayesian optimization.
str_mlm_method (str., optional) – the name of marginal likelihood maximization method for Gaussian process regression.
str_modelselection_method (str., optional) – the name of model selection method for Gaussian process regression.
num_samples_ao (int., optional) – the number of samples for acquisition function optimization. If a local search method (e.g., L-BFGS-B) is selected for acquisition function optimization, it is employed.
str_exp (str., optional) – the name of experiment.
debug (bool., optional) – a flag for printing log messages.
- _get_model_bo_gp()
It returns an object of bayeso.bo.bo_w_gp.BO_w_GP.
- Returns:
an object of Bayesian optimization.
- Return type:
- _get_model_bo_tp()
It returns an object of bayeso.bo.bo_w_tp.BO_w_TP.
- Returns:
an object of Bayesian optimization.
- Return type:
- _get_model_bo_trees()
It returns an object of bayeso.bo.bo_w_trees.BO_w_Trees.
- Returns:
an object of Bayesian optimization.
- Return type:
- _get_next_best_sample(next_sample: ndarray, X: ndarray, next_samples: ndarray, acq_vals: ndarray) ndarray
It returns the next best sample in terms of acquisition function values.
- Parameters:
next_sample (np.ndarray) – the next sample acquired.
X (np.ndarray) – the samples evaluated so far.
next_samples (np.ndarray) – the candidates of the next sample.
acq_vals (np.ndarray) – the values of acquisition function over next_samples.
- Returns:
the next best sample. Shape: (d, ).
- Return type:
numpy.ndarray
- Raises:
AssertionError
- optimize(num_init: int, seed: int | None = None) Tuple[ndarray, ndarray, ndarray, ndarray, ndarray]
It returns the optimization results and times consumed, given the number of initial samples num_init and a random seed seed.
- Parameters:
num_init (int.) – the number of initial samples.
seed (NoneType or int., optional) – None, or a random seed.
- Returns:
a tuple of acquired samples, their function values, overall times consumed per iteration, time consumed in modeling Gaussian process regression, and time consumed in acquisition function optimization. Shape: ((num_init + num_iter, d), (num_init + num_iter, 1), (num_init + num_iter, ), (num_iter, ), (num_iter, )), or ((num_init + num_iter, m, d), (num_init + num_iter, m, 1), (num_init + num_iter, ), (num_iter, ), (num_iter, )), where d is a dimensionality of the problem we are solving and m is a cardinality of sets.
- Return type:
(numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray)
- Raises:
AssertionError
- optimize_single_iteration(X: ndarray, Y: ndarray) Tuple[ndarray, dict]
It returns the optimization result and time consumed of single iteration, given X and Y.
- Parameters:
X (numpy.ndarray) – inputs. Shape: (n, d) or (n, m, d).
Y (numpy.ndarray) – outputs. Shape: (n, 1).
- Returns:
a tuple of the next sample and information dictionary.
- Return type:
(numpy.ndarray, dict.)
- Raises:
AssertionError, NotImplementedError
- optimize_with_all_initial_information(X: ndarray, Y: ndarray) Tuple[ndarray, ndarray, ndarray, ndarray, ndarray]
It returns the optimization results and times consumed, given inital inputs X and their corresponding outputs Y.
- Parameters:
X (numpy.ndarray) – initial inputs. Shape: (n, d) or (n, m, d).
Y (numpy.ndarray) – initial outputs. Shape: (n, 1).
- Returns:
a tuple of acquired samples, their function values, overall times consumed per iteration, time consumed in modeling Gaussian process regression, and time consumed in acquisition function optimization. Shape: ((n + num_iter, d), (n + num_iter, 1), (num_iter, ), (num_iter, ), (num_iter, )), or ((n + num_iter, m, d), (n + num_iter, m, 1), (num_iter, ), (num_iter, ), (num_iter, )).
- Return type:
(numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray)
- Raises:
AssertionError
- optimize_with_initial_inputs(X: ndarray) Tuple[ndarray, ndarray, ndarray, ndarray, ndarray]
It returns the optimization results and times consumed, given inital inputs X.
- Parameters:
X (numpy.ndarray) – initial inputs. Shape: (n, d) or (n, m, d).
- Returns:
a tuple of acquired samples, their function values, overall times consumed per iteration, time consumed in modeling Gaussian process regression, and time consumed in acquisition function optimization. Shape: ((n + num_iter, d), (n + num_iter, 1), (n + num_iter, ), (num_iter, ), (num_iter, )), or ((n + num_iter, m, d), (n + num_iter, m, 1), (n + num_iter, ), (num_iter, ), (num_iter, )).
- Return type:
(numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray)
- Raises:
AssertionError
- print_info(num_init, seed)
It returns the optimization results and times consumed, given inital inputs X.
- Parameters:
num_init (int.) – the number of initial points.
seed (int.) – a random seed.
- Returns:
None
- Return type:
NoneType