syne_tune.experiments.visualization.multiobjective module

syne_tune.experiments.visualization.multiobjective.hypervolume_indicator_column_generator(metrics_and_modes, reference_point=None, increment=1)[source]

Returns generator for new dataframe column containing the best hypervolume indicator as function of wall-clock time, based on the metrics in metrics_and_modes (metric names correspond to column names in the dataframe). For a metric with mode == "max", we use its negative.

This mapping is used to create the dataframe_column_generator argument of plot(). Since the current implementation is not incremental and quite slow, if you plot results for single-fidelity HPO methods, it is strongly recommended to also use one_result_per_trial=True:

results = ComparativeResults(...)
dataframe_column_generator = hypervolume_indicator_column_generator(
    metrics_and_modes
)
plot_params = PlotParameters(
    metric="hypervolume_indicator",
    mode="max",
)
results.plot(
    benchmark_name=benchmark_name,
    plot_params=plot_params,
    dataframe_column_generator=dataframe_column_generator,
    one_result_per_trial=True,
)
Parameters:
  • metrics_and_modes (List[Tuple[str, str]]) – List of (metric, mode), see above

  • reference_point (Optional[ndarray]) – Reference point for hypervolume computation. If not given, a default value is used

  • increment (int) – If > 1, the HV indicator is linearly interpolated, this is faster. Defaults to 1 (no interpolation)

Returns:

Dataframe column generator