optuna.visualization.plot_pareto_front

optuna.visualization.plot_pareto_front(study, *, target_names=None, include_dominated_trials=True, axis_order=None, constraints_func=None, targets=None)[source]

Plot the Pareto front of a study.

See also

Please refer to Multi-objective Optimization with Optuna for the tutorial of the Pareto front visualization.

Example

The following code snippet shows how to plot the Pareto front of a study.

import optuna


def objective(trial):
    x = trial.suggest_float("x", 0, 5)
    y = trial.suggest_float("y", 0, 3)

    v0 = 4 * x ** 2 + 4 * y ** 2
    v1 = (x - 5) ** 2 + (y - 5) ** 2
    return v0, v1


study = optuna.create_study(directions=["minimize", "minimize"])
study.optimize(objective, n_trials=50)

fig = optuna.visualization.plot_pareto_front(study)
fig.show()
Parameters
  • study (Study) – A Study object whose trials are plotted for their objective values. study.n_objectives must be either 2 or 3 when targets is None.

  • target_names (Optional[List[str]]) – Objective name list used as the axis titles. If None is specified, “Objective {objective_index}” is used instead. If targets is specified for a study that does not contain any completed trial, target_name must be specified.

  • include_dominated_trials (bool) – A flag to include all dominated trial’s objective values.

  • axis_order (Optional[List[int]]) – A list of indices indicating the axis order. If None is specified, default order is used. axis_order and targets cannot be used at the same time.

  • constraints_func (Optional[Callable[[FrozenTrial], Sequence[float]]]) –

    An optional function that computes the objective constraints. It must take a FrozenTrial and return the constraints. The return value must be a sequence of float s. A value strictly larger than 0 means that a constraint is violated. A value equal to or smaller than 0 is considered feasible. This specification is the same as in, for example, NSGAIISampler.

    If given, trials are classified into three categories: feasible and best, feasible but non-best, and infeasible. Categories are shown in different colors. Here, whether a trial is best (on Pareto front) or not is determined ignoring all infeasible trials.

  • targets (Optional[Callable[[FrozenTrial], Sequence[float]]]) –

    A function that returns targets values to display. The argument to this function is FrozenTrial. axis_order and targets cannot be used at the same time. If study.n_objectives is neither 2 nor 3, targets must be specified.

    Note

    Added in v3.0.0 as an experimental feature. The interface may change in newer versions without prior notice. See https://github.com/optuna/optuna/releases/tag/v3.0.0.

Returns

A plotly.graph_objs.Figure object.

Return type

Figure

Note

Added in v2.4.0 as an experimental feature. The interface may change in newer versions without prior notice. See https://github.com/optuna/optuna/releases/tag/v2.4.0.