DesirabilityObjective

class baybe.objectives.desirability.DesirabilityObjective[source]

Bases: Objective

An objective scalarizing multiple targets using desirability values.

Public methods

__init__(targets[, weights, scalarizer, ...])

Method generated by attrs for class DesirabilityObjective.

from_dict(dictionary)

Create an object from its dictionary representation.

from_json(string)

Create an object from its JSON representation.

to_botorch()

Convert to BoTorch representation.

to_dict()

Create an object's dictionary representation.

to_json()

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.

is_multi_output

Class variable indicating if the objective produces multiple outputs.

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.

weights

The weights to balance the different targets.

scalarizer

The mechanism to scalarize the weighted desirability values of all targets.

require_normalization

Controls if the targets must be normalized.

as_pre_transformation

Controls if the desirability computation is applied as a pre-transformation.

metadata

Optional metadata containing description and other information.

__init__(targets: Iterable, weights=NOTHING, scalarizer=Scalarizer.GEOM_MEAN, *, metadata=NOTHING, require_normalization: bool = True, as_pre_transformation: bool = False)

Method generated by attrs for class DesirabilityObjective.

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(string: str)

Create an object from its JSON representation.

Parameters:

string (str) – The JSON representation of the object.

Return type:

TypeVar(_T, bound= SerialMixin)

Returns:

The reconstructed object.

to_botorch()[source]

Convert to BoTorch representation.

Return type:

MCAcquisitionObjective

to_dict()

Create an object’s dictionary representation.

Return type:

dict

Returns:

The dictionary representation of the object.

to_json()

Create an object’s JSON representation.

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)

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.

as_pre_transformation: bool

Controls if the desirability computation is applied as a pre-transformation.

property description: str | None

The description of the objective.

is_multi_output: ClassVar[bool] = False

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.

property output_names: tuple[str, ...]

The names of the outputs of the objective.

require_normalization: bool

Controls if the targets must be normalized.

scalarizer: Scalarizer

The mechanism to scalarize the weighted desirability values of all targets.

property supports_partial_measurements: bool

Boolean indicating if the objective accepts partial target measurements.

property targets: tuple[NumericalTarget, ...]

The targets included in the objective.

weights: tuple[float, ...]

The weights to balance the different targets. By default, all targets are considered equally important.