SequentialMetaRecommender¶
- class baybe.recommenders.meta.sequential.SequentialMetaRecommender[source]¶
Bases:
BaseSequentialMetaRecommender
A meta recommender that uses a pre-defined sequence of recommenders.
A new recommender is taken from the sequence whenever at least one new measurement is available, until all recommenders are exhausted. More precisely, a recommender change is triggered whenever the size of the training dataset increases; the actual content of the dataset is ignored.
Note
The provided sequence of recommenders will be internally pre-collected into a list. If this is not acceptable, consider using
baybe.recommenders.meta.sequential.StreamingSequentialMetaRecommender
instead.- Raises:
RuntimeError – If the training dataset size decreased compared to the previous call.
NoRecommendersLeftError – If more recommenders are requested than there are recommenders available and
mode="raise"
.
Public methods
__init__
(recommenders[, mode, ...])Method generated by attrs for class SequentialMetaRecommender.
from_dict
(dictionary)Create an object from its dictionary representation.
from_json
(source, /)Create an object from its JSON representation.
Deprecated! Use
select_recommender()
orget_non_meta_recommender()
instead.Deprecated! Use
select_recommender()
orget_non_meta_recommender()
instead.get_non_meta_recommender
([batch_size, ...])Follow the meta recommender chain to the selected non-meta recommender.
recommend
(batch_size, searchspace[, ...])See
baybe.recommenders.base.RecommenderProtocol.recommend()
.select_recommender
([batch_size, ...])Select a recommender for the given experimentation context.
to_dict
()Create an object's dictionary representation.
to_json
([sink, overwrite])Create an object's JSON representation.
Public attributes and properties
A finite-length sequence of recommenders to be used.
Defines what shall happen when the last recommender in the sequence has been consumed but additional recommender changes are triggered:
Boolean indicating if the meta recommender is stateful.
- __init__(recommenders, mode: Literal['raise', 'reuse_last', 'cyclic'] = 'raise', *, _n_last_measurements: int = 0)¶
Method generated by attrs for class SequentialMetaRecommender.
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 (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.
- get_current_recommender()¶
Deprecated! Use
select_recommender()
orget_non_meta_recommender()
instead.- Return type:
- get_next_recommender()¶
Deprecated! Use
select_recommender()
orget_non_meta_recommender()
instead.- Return type:
- get_non_meta_recommender(batch_size: int | None = None, searchspace: SearchSpace | None = None, objective: Objective | None = None, measurements: DataFrame | None = None, pending_experiments: DataFrame | None = None)¶
Follow the meta recommender chain to the selected non-meta recommender.
Recursively calls
MetaRecommender.select_recommender()
until a non-meta recommender is encountered, which is then returned. Effectively, this extracts the recommender responsible for generating the recommendations for the specified context.See
baybe.recommenders.base.RecommenderProtocol.recommend()
for details on the method arguments.- Return type:
- recommend(batch_size: int, searchspace: SearchSpace, objective: Objective | None = None, measurements: DataFrame | None = None, pending_experiments: DataFrame | None = None)¶
See
baybe.recommenders.base.RecommenderProtocol.recommend()
.- Return type:
- select_recommender(batch_size: int | None = None, searchspace: SearchSpace | None = None, objective: Objective | None = None, measurements: DataFrame | None = None, pending_experiments: DataFrame | None = None)¶
Select a recommender for the given experimentation context.
See
baybe.recommenders.base.RecommenderProtocol.recommend()
for details on the method arguments.- Return type:
- 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 (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 orPath
object.**kwargs (Any) – Additional keyword arguments to pass to
json.dumps()
.
- Raises:
FileExistsError – If
sink
points to an already existing file butoverwrite
isFalse
.- Return type:
str
- Returns:
The JSON representation as a string.
-
mode:
Literal
['raise'
,'reuse_last'
,'cyclic'
]¶ Defines what shall happen when the last recommender in the sequence has been consumed but additional recommender changes are triggered:
"raise"
: An error is raised."reuse_last"
: The last recommender in the sequence is used indefinitely."cycle"
: The selection restarts from the beginning of the sequence.
-
recommenders:
list
[RecommenderProtocol
]¶ A finite-length sequence of recommenders to be used. For infinite-length iterables, see
baybe.recommenders.meta.sequential.StreamingSequentialMetaRecommender
.