Objective

class baybe.objectives.base.Objective[source]

Bases: ABC, SerialMixin

Abstract base class for all objectives.

Public methods

__init__(*[, metadata])

Method generated by attrs for class Objective.

from_dict(dictionary)

Create an object from its dictionary representation.

from_json(source, /)

Create an object from its JSON representation.

to_botorch()

Convert to BoTorch objective.

to_botorch_posterior_transform()

Convert to BoTorch posterior transform, if possible.

to_dict()

Create an object's dictionary representation.

to_json([sink, overwrite])

Create an object's JSON representation.

transform([df, allow_missing, allow_extra, data])

Evaluate the objective on the target columns of the given dataframe.

Public attributes and properties

description

The description of the objective.

n_outputs

The number of outputs of the objective.

output_names

The names of the outputs of the objective.

supports_partial_measurements

Boolean indicating if the objective accepts partial target measurements.

targets

The targets included in the objective.

is_multi_output

Class variable indicating if the objective produces multiple outputs.

metadata

Optional metadata containing description and other information.

__init__(*, metadata=NOTHING)

Method generated by attrs for class Objective.

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

classmethod from_dict(dictionary: dict)

Create an object from its dictionary representation.

Parameters:

dictionary (dict) – The dictionary representation.

Return type:

TypeVar(_T, bound= SerialMixin)

Returns:

The reconstructed object.

classmethod from_json(source: str | Path | SupportsRead[str], /)

Create an object from its JSON representation.

Parameters:

source (str | Path | SupportsRead[str]) –

The JSON source. Can be:

  • A string containing JSON content.

  • A file path or Path object pointing to a JSON file.

  • A file-like object with a read() method.

Raises:

ValueError – If source is not one of the allowed types.

Return type:

_T

Returns:

The reconstructed object.

to_botorch()[source]

Convert to BoTorch objective.

Return type:

MCAcquisitionObjective

abstract to_botorch_posterior_transform()[source]

Convert to BoTorch posterior transform, if possible.

A representation as posterior transformation is only possible if Gaussianity is preserved by the involved operations, that is, when all targets are inherently numerical and their assigned transformations are affine.

Return type:

PosteriorTransform

to_dict()

Create an object’s dictionary representation.

Return type:

dict

Returns:

The dictionary representation of the object.

to_json(sink: str | Path | SupportsWrite[str] | None = None, /, *, overwrite: bool = False, **kwargs: Any)

Create an object’s JSON representation.

Parameters:
  • sink (str | Path | SupportsWrite[str] | None) –

    The JSON sink. Can be:

    • None (only returns the JSON string).

    • A file path or Path object pointing to a location where to write the JSON content.

    • A file-like object with a write() method.

  • overwrite (bool) – Boolean flag indicating if to overwrite the file if it already exists. Only relevant if sink is a file path or Path object.

  • **kwargs (Any) – Additional keyword arguments to pass to json.dumps().

Raises:

FileExistsError – If sink points to an already existing file but overwrite is False.

Return type:

str

Returns:

The JSON representation as a string.

transform(df: DataFrame | None = None, /, *, allow_missing: bool = False, allow_extra: bool | None = None, data: DataFrame | None = None)[source]

Evaluate the objective on the target columns of the given dataframe.

Parameters:
  • df (Optional[DataFrame]) – The dataframe to be transformed. The allowed columns of the dataframe are dictated by the allow_missing and allow_extra flags.

  • allow_missing (bool) – If False, each target of the objective must have exactly one corresponding column in the given dataframe. If True, the dataframe may contain only a subset of target columns.

  • allow_extra (Optional[bool]) – If False, each column present in the dataframe must correspond to exactly one target of the objective. If True, the dataframe may contain additional non-target-related columns, which will be ignored. The None default value is for temporary backward compatibility only and will be removed in a future version.

  • data (Optional[DataFrame]) – Ignore! For backward compatibility only.

Raises:

ValueError – If dataframes are passed to both df and data.

Return type:

DataFrame

Returns:

A dataframe containing the objective values for the given input dataframe.

property description: str | None

The description of the objective.

is_multi_output: ClassVar[bool]

Class variable indicating if the objective produces multiple outputs.

metadata: Metadata

Optional metadata containing description and other information.

property n_outputs: int

The number of outputs of the objective.

abstract property output_names: tuple[str, ...]

The names of the outputs of the objective.

abstract property supports_partial_measurements: bool

Boolean indicating if the objective accepts partial target measurements.

abstract property targets: tuple[Target, ...]

The targets included in the objective.