BotorchRecommender

class baybe.recommenders.pure.bayesian.botorch.BotorchRecommender[source]

Bases: BayesianRecommender

A pure recommender utilizing Botorch’s optimization machinery.

This recommender makes use of Botorch’s optimize_acqf_discrete, optimize_acqf and optimize_acqf_mixed functions to optimize discrete, continuous and hybrid search spaces, respectively. Accordingly, it can be applied to all kinds of search spaces.

Note

In hybrid search spaces, the used algorithm performs a brute-force optimization that can be computationally expensive. Thus, the behavior of the algorithm in hybrid search spaces can be controlled via two additional parameters.

Public methods

__init__(*[, ...])

Method generated by attrs for class BotorchRecommender.

recommend(batch_size, searchspace[, ...])

Recommend a batch of points from the given search space.

Public attributes and properties

sequential_continuous

Flag defining whether to apply sequential greedy or batch optimization in continuous search spaces.

hybrid_sampler

Strategy used for sampling the discrete subspace when performing hybrid search space optimization.

sampling_percentage

Percentage of discrete search space that is sampled when performing hybrid search space optimization.

acquisition_function

The used acquisition function class.

acquisition_function_cls

Deprecated! Raises an error when used.

allow_recommending_already_measured

Allow to make recommendations that were measured previously.

allow_repeated_recommendations

Allow to make recommendations that were already recommended earlier.

compatibility

Class variable reflecting the search space compatibility.

surrogate_model

The used surrogate model.

__init__(*, allow_repeated_recommendations: bool = False, allow_recommending_already_measured: bool = True, surrogate_model: Surrogate = NOTHING, acquisition_function: AcquisitionFunction | str = NOTHING, acquisition_function_cls: str | None = None, sequential_continuous: bool = False, hybrid_sampler=None, sampling_percentage: float = 1.0)

Method generated by attrs for class BotorchRecommender.

For details on the parameters, see Public attributes and properties.

recommend(batch_size: int, searchspace: SearchSpace, objective: Objective | None = None, measurements: DataFrame | None = None)

Recommend a batch of points from the given search space.

Parameters:
  • batch_size (int) – The number of points to be recommended.

  • searchspace (SearchSpace) – The search space from which to recommend the points.

  • objective (Optional[Objective]) – An optional objective to be optimized.

  • measurements (Optional[DataFrame]) – Optional experimentation data that can be used for model training. The data is to be provided in “experimental representation”: It needs to contain one column for each parameter spanning the search space (column name matching the parameter name) and one column for each target tracked by the objective (column name matching the target name). Each row corresponds to one conducted experiment, where the parameter columns define the experimental setting and the target columns report the measured outcomes.

Return type:

DataFrame

Returns:

A dataframe containing the recommendations in experimental representation as individual rows.

acquisition_function: AcquisitionFunction

The used acquisition function class.

acquisition_function_cls: str | None

Deprecated! Raises an error when used.

allow_recommending_already_measured: bool

Allow to make recommendations that were measured previously. This only has an influence in discrete search spaces.

allow_repeated_recommendations: bool

Allow to make recommendations that were already recommended earlier. This only has an influence in discrete search spaces.

compatibility: ClassVar[SearchSpaceType] = 'HYBRID'

Class variable reflecting the search space compatibility.

hybrid_sampler: DiscreteSamplingMethod | None

Strategy used for sampling the discrete subspace when performing hybrid search space optimization.

sampling_percentage: float

Percentage of discrete search space that is sampled when performing hybrid search space optimization. Ignored when hybrid_sampler="None".

sequential_continuous: bool

Flag defining whether to apply sequential greedy or batch optimization in continuous search spaces. (In discrete/hybrid spaces, sequential greedy optimization is applied automatically.)

surrogate_model: Surrogate

The used surrogate model.