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

1# 

2# Copyright (c) Microsoft Corporation. 

3# Licensed under the MIT License. 

4# 

5""" 

6Contains the wrapper classes for base Bayesian optimizers. 

7""" 

8 

9from abc import ABCMeta, abstractmethod 

10 

11from typing import Optional 

12 

13import pandas as pd 

14import numpy.typing as npt 

15 

16from mlos_core.optimizers.optimizer import BaseOptimizer 

17 

18 

19class BaseBayesianOptimizer(BaseOptimizer, metaclass=ABCMeta): 

20 """Abstract base class defining the interface for Bayesian optimization.""" 

21 

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). 

26 

27 Parameters 

28 ---------- 

29 configurations : pd.DataFrame 

30 Dataframe of configurations / parameters. The columns are parameter names and the rows are the configurations. 

31 

32 context : pd.DataFrame 

33 Not Yet Implemented. 

34 """ 

35 pass # pylint: disable=unnecessary-pass # pragma: no cover 

36 

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. 

41 

42 Parameters 

43 ---------- 

44 configurations : pd.DataFrame 

45 Dataframe of configurations / parameters. The columns are parameter names and the rows are the configurations. 

46 

47 context : pd.DataFrame 

48 Not Yet Implemented. 

49 """ 

50 pass # pylint: disable=unnecessary-pass # pragma: no cover