qThompsonSampling¶
- class baybe.acquisition.acqfs.qThompsonSampling[source]¶
Bases:
qSimpleRegret
Thomson sampling, implemented via simple regret. Inherently Monte Carlo based.
This implementation exploits the fact that one-sample-based Thompson sampling (i.e. where the action probability is approximated using a single posterior sample) is equivalent to optimizing the Monte Carlo approximated posterior mean with sample size one. The latter can be achieved via qSimpleRegret and controlling its sample shape attribute.
Public methods
__init__
()Method generated by attrs for class qThompsonSampling.
evaluate
(candidates, surrogate, searchspace, ...)Get the acquisition values for the given candidates.
from_dict
(dictionary)Create an object from its dictionary representation.
from_json
(source, /)Create an object from its JSON representation.
to_botorch
(surrogate, searchspace, ...[, ...])Create the botorch-ready representation of the function.
to_dict
()Create an object's dictionary representation.
to_json
([sink, overwrite])Create an object's JSON representation.
Public attributes and properties
Number of Monte Carlo samples drawn from the posterior at each design point.
An alternative name for type resolution.
Whether this acquisition function can handle models with multiple outputs.
- __init__()¶
Method generated by attrs for class qThompsonSampling.
For details on the parameters, see Public attributes and properties.
- evaluate(candidates: DataFrame, surrogate: SurrogateProtocol, searchspace: SearchSpace, objective: Objective, measurements: DataFrame, pending_experiments: DataFrame | None = None, *, jointly: bool = False)¶
Get the acquisition values for the given candidates.
- Parameters:
candidates (
DataFrame
) – The candidate points in experimental representation. For details, seebaybe.surrogates.base.Surrogate.posterior()
.surrogate (
SurrogateProtocol
) – The surrogate model to use for the acquisition function.searchspace (
SearchSpace
) – The search space. Seebaybe.recommenders.base.RecommenderProtocol.recommend()
.objective (
Objective
) – The objective. Seebaybe.recommenders.base.RecommenderProtocol.recommend()
.measurements (
DataFrame
) – Available experimentation data. Seebaybe.recommenders.base.RecommenderProtocol.recommend()
.pending_experiments (
Optional
[DataFrame
]) – Optional pending experiments. Seebaybe.recommenders.base.RecommenderProtocol.recommend()
.jointly (
bool
) – IfFalse
, the acquisition values are computed independently for each candidate. IfTrue
, a single joint acquisition value is computed for the entire candidate set.
- Return type:
- Returns:
Depending on the joint mode, either a single batch acquisition value or a series of individual acquisition values.
- 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(surrogate: SurrogateProtocol, searchspace: SearchSpace, objective: Objective, measurements: DataFrame, pending_experiments: DataFrame | None = None)¶
Create the botorch-ready representation of the function.
The required structure of measurements is specified in
baybe.recommenders.base.RecommenderProtocol.recommend()
.- 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.