syne_tune.optimizer.schedulers.multiobjective.random_scalarization module
- class syne_tune.optimizer.schedulers.multiobjective.random_scalarization.MultiObjectiveLCBRandomLinearScalarization(predictor, active_metric=None, weights_sampler=None, kappa=0.5, normalize_acquisition=True, random_seed=None)[source]
Bases:
ScoringFunction
Note: This is the multi objective random scalarization scoring function based on the work of Biswajit et al. [1]. This scoring function uses Lower Confidence Bound as the acquisition for the scalarized objective \(h(\mu, \sigma) = \mu - \kappa * \sigma\)
[1] Paria, Biswajit, Kirthevasan Kandasamy and Barnabás Póczos.A Flexible Framework for Multi-Objective Bayesian Optimization using Random Scalarizations.Conference on Uncertainty in Artificial Intelligence (2018).- Parameters:
predictor (
Dict
[str
,Predictor
]) – Surrogate predictor for statistics of predictive distributionweights_sampler (
Optional
[Callable
[[],Dict
[str
,float
]]]) –Callable that can generate weights for each objective. Once called it will return a dictionary mapping metric name to scalarization weight as {
<name of metric 1> : <weight for metric 1>, <name of metric 2> : <weight for metric 2>, …
}
kappa (
float
) – Hyperparameter used for the LCM portion of the scoringnormalize_acquisition (
bool
) – If True, use rank-normalization on the acquisition function results before weighting.random_seed (
Optional
[int
]) – The random seed used for default weights_sampler if not provided.
- score(candidates, predictor=None)[source]
- Parameters:
candidates (
Iterable
[Dict
[str
,Union
[int
,float
,str
]]]) – Configurations for which scores are to be computedpredictor (
Optional
[Dict
[str
,Predictor
]]) – Overrides default predictor
- Return type:
List
[float
]- Returns:
List of score values, length of
candidates