DiscreteBatchConstraint¶
- class baybe.constraints.discrete.DiscreteBatchConstraint[source]¶
Bases:
DiscreteConstraintConstraint ensuring recommendations in a batch share certain parameter values.
When this constraint is active, the recommender internally subsets the candidate set (one subset for each unique value of the constrained parameter), obtains a full batch recommendation from each subset, and returns the batch with the highest joint acquisition value.
This constraint is not supported by all recommenders. It is not applied during search space creation (all parameter values remain in the search space).
Example
If parameter
Temperaturehas values[50, 100, 150]and a batch of 10 is requested, the recommender will generate three candidate batches (one all-50, one all-100, one all-150) and return the best one.Notes
This constraint can lead to overhead in the computation since optimization results in individual optimizations over several subsets. If there are multiple subset-generating constraints active, this can drastically increase the computational cost due to the combinatorial explosion.
Public methods
__init__(parameters)Method generated by attrs for class DiscreteBatchConstraint.
from_dict(dictionary)Create an object from its dictionary representation.
from_json(source, /)Create an object from its JSON representation.
get_invalid(df, /, *[, allow_missing])Get the indices of dataframe entries that are invalid under the constraint.
Translate the constraint to Polars expression identifying undesired rows.
get_valid(df, /, *[, allow_missing])Get the indices of dataframe entries that are valid under the constraint.
subset_masks(candidates_exp, /)Return Boolean masks defining the subsets for this constraint.
summary()Return a custom summarization of the constraint.
to_dict()Create an object's dictionary representation.
to_json([sink, overwrite])Create an object's JSON representation.
Public attributes and properties
Class variable encoding whether the constraint could be considered during data augmentation.
Class variable encoding whether the condition is evaluated during creation.
Class variable encoding whether the condition is evaluated during modeling.
has_polars_implementationBoolean indicating if this is a constraint over continuous parameters.
Boolean indicating if this is a constraint over discrete parameters.
Class variable encoding whether the constraint is valid only for numerical parameters.
The list of parameters used for the constraint.
- __init__(parameters: list[str])¶
Method generated by attrs for class DiscreteBatchConstraint.
For details on the parameters, see Public attributes and properties.
- classmethod from_json(source: str | Path | SupportsRead[str], /)¶
Create an object from its JSON representation.
- Parameters:
source (
Union[str,Path,SupportsRead[str]]) –The JSON source. Can be:
A string containing JSON content.
A file path or
Pathobject pointing to a JSON file.A file-like object with a
read()method.
- Raises:
ValueError – If
sourceis not one of the allowed types.- Return type:
TypeVar(_T, bound= SerialMixin)- Returns:
The reconstructed object.
- get_invalid(df: DataFrame, /, *, allow_missing: bool = False)¶
Get the indices of dataframe entries that are invalid under the constraint.
- Parameters:
df (
DataFrame) – A dataframe where each row represents a parameter configuration.allow_missing (
bool) – IfFalse, aValueErroris raised when the dataframe is missing required parameter columns. IfTrue, the subclass is asked whether it can perform (partial) constraint evaluation; if not, an empty index is returned, signaling to the caller there are no entries to be excluded *yet*.
- Raises:
ValueError – If
allow_missingisFalseand the dataframe is missing required parameter columns.- Return type:
Index- Returns:
The dataframe indices of rows that violate the constraint.
- get_invalid_polars()¶
Translate the constraint to Polars expression identifying undesired rows.
- Return type:
pl.Expr
- Returns:
The Polars expressions to pass to
polars.LazyFrame.filter().- Raises:
NotImplementedError – If the constraint class does not have a Polars implementation.
- get_valid(df: DataFrame, /, *, allow_missing: bool = False)¶
Get the indices of dataframe entries that are valid under the constraint.
- Parameters:
df (
DataFrame) – A dataframe where each row represents a parameter configuration.allow_missing (
bool) – IfFalse, aValueErroris raised when the dataframe is missing required parameter columns. IfTrue, the constraint performs partial filtering on the available columns.
- Return type:
Index- Returns:
The dataframe indices of rows that fulfill the constraint.
- subset_masks(candidates_exp: DataFrame, /)[source]¶
Return Boolean masks defining the subsets for this constraint.
Each mask selects the rows in
candidates_expthat belong to one subset, i.e. share the same value for the constrained parameter.
- to_dict()¶
Create an object’s dictionary representation.
- Return type:
- 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 (
Union[str,Path,SupportsWrite[str],None]) –The JSON sink. Can be:
None(only returns the JSON string).A file path or
Pathobject 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 ifsinkis a file path orPathobject.**kwargs (
Any) – Additional keyword arguments to pass tojson.dumps().
- Raises:
FileExistsError – If
sinkpoints to an already existing file butoverwriteisFalse.- Return type:
- Returns:
The JSON representation as a string.
-
eval_during_augmentation:
ClassVar[bool] = False¶ Class variable encoding whether the constraint could be considered during data augmentation.
-
eval_during_creation:
ClassVar[bool] = False¶ Class variable encoding whether the condition is evaluated during creation.
-
eval_during_modeling:
ClassVar[bool] = True¶ Class variable encoding whether the condition is evaluated during modeling.
- property is_continuous: bool¶
Boolean indicating if this is a constraint over continuous parameters.