Coverage for mlos_core/mlos_core/optimizers/bayesian_optimizers/bayesian_optimizer.py: 100%
11 statements
« prev ^ index » next coverage.py v7.5.1, created at 2024-05-06 00:35 +0000
« prev ^ index » next coverage.py v7.5.1, created at 2024-05-06 00:35 +0000
1#
2# Copyright (c) Microsoft Corporation.
3# Licensed under the MIT License.
4#
5"""
6Contains the wrapper classes for base Bayesian optimizers.
7"""
9from abc import ABCMeta, abstractmethod
11from typing import Optional
13import pandas as pd
14import numpy.typing as npt
16from mlos_core.optimizers.optimizer import BaseOptimizer
19class BaseBayesianOptimizer(BaseOptimizer, metaclass=ABCMeta):
20 """Abstract base class defining the interface for Bayesian optimization."""
22 @abstractmethod
23 def surrogate_predict(self, configurations: pd.DataFrame,
24 context: Optional[pd.DataFrame] = None) -> npt.NDArray:
25 """Obtain a prediction from this Bayesian optimizer's surrogate model for the given configuration(s).
27 Parameters
28 ----------
29 configurations : pd.DataFrame
30 Dataframe of configurations / parameters. The columns are parameter names and the rows are the configurations.
32 context : pd.DataFrame
33 Not Yet Implemented.
34 """
35 pass # pylint: disable=unnecessary-pass # pragma: no cover
37 @abstractmethod
38 def acquisition_function(self, configurations: pd.DataFrame,
39 context: Optional[pd.DataFrame] = None) -> npt.NDArray:
40 """Invokes the acquisition function from this Bayesian optimizer for the given configuration.
42 Parameters
43 ----------
44 configurations : pd.DataFrame
45 Dataframe of configurations / parameters. The columns are parameter names and the rows are the configurations.
47 context : pd.DataFrame
48 Not Yet Implemented.
49 """
50 pass # pylint: disable=unnecessary-pass # pragma: no cover