optuna.visualization

Note

visualization module uses plotly to create figures, but JupyterLab cannot render them by default. Please follow this installation guide to show figures in JupyterLab.

optuna.visualization.plot_contour(study: optuna.study.Study, params: Optional[List[str]] = None) → go.Figure[source]

Plot the parameter relationship as contour plot in a study.

Note that, If a parameter contains missing values, a trial with missing values is not plotted.

Example

The following code snippet shows how to plot the parameter relationship as contour plot.

import optuna

def objective(trial):
    x = trial.suggest_uniform('x', -100, 100)
    y = trial.suggest_categorical('y', [-1, 0, 1])
    return x ** 2 + y

study = optuna.create_study()
study.optimize(objective, n_trials=10)

optuna.visualization.plot_contour(study, params=['x', 'y'])
Parameters
  • study – A Study object whose trials are plotted for their objective values.

  • params – Parameter list to visualize. The default is all parameters.

Returns

A plotly.graph_objs.Figure object.

optuna.visualization.plot_intermediate_values(study: optuna.study.Study) → go.Figure[source]

Plot intermediate values of all trials in a study.

Example

The following code snippet shows how to plot intermediate values.

import optuna

def f(x):
    return (x - 2) ** 2

def df(x):
    return 2 * x - 4

def objective(trial):
    lr = trial.suggest_loguniform("lr", 1e-5, 1e-1)

    x = 3
    for step in range(128):
        y = f(x)

        trial.report(y, step=step)
        if trial.should_prune():
            raise optuna.TrialPruned()

        gy = df(x)
        x -= gy * lr

    return y

study = optuna.create_study()
study.optimize(objective, n_trials=16)

optuna.visualization.plot_intermediate_values(study)
Parameters

study – A Study object whose trials are plotted for their intermediate values.

Returns

A plotly.graph_objs.Figure object.

optuna.visualization.plot_optimization_history(study: optuna.study.Study) → go.Figure[source]

Plot optimization history of all trials in a study.

Example

The following code snippet shows how to plot optimization history.

import optuna

def objective(trial):
    x = trial.suggest_uniform('x', -100, 100)
    y = trial.suggest_categorical('y', [-1, 0, 1])
    return x ** 2 + y

study = optuna.create_study()
study.optimize(objective, n_trials=10)

optuna.visualization.plot_optimization_history(study)
Parameters

study – A Study object whose trials are plotted for their objective values.

Returns

A plotly.graph_objs.Figure object.

optuna.visualization.plot_parallel_coordinate(study: optuna.study.Study, params: Optional[List[str]] = None) → go.Figure[source]

Plot the high-dimentional parameter relationships in a study.

Note that, If a parameter contains missing values, a trial with missing values is not plotted.

Example

The following code snippet shows how to plot the high-dimentional parameter relationships.

import optuna

def objective(trial):
    x = trial.suggest_uniform('x', -100, 100)
    y = trial.suggest_categorical('y', [-1, 0, 1])
    return x ** 2 + y

study = optuna.create_study()
study.optimize(objective, n_trials=10)

optuna.visualization.plot_parallel_coordinate(study, params=['x', 'y'])
Parameters
  • study – A Study object whose trials are plotted for their objective values.

  • params – Parameter list to visualize. The default is all parameters.

Returns

A plotly.graph_objs.Figure object.

optuna.visualization.plot_param_importances(study: optuna.study.Study, evaluator: optuna.importance._base.BaseImportanceEvaluator = None, params: Optional[List[str]] = None) → go.Figure[source]

Plot hyperparameter importances.

Example

The following code snippet shows how to plot hyperparameter importances.

import optuna

def objective(trial):
    x = trial.suggest_int("x", 0, 2)
    y = trial.suggest_float("y", -1.0, 1.0)
    z = trial.suggest_float("z", 0.0, 1.5)
    return x ** 2 + y ** 3 - z ** 4

study = optuna.create_study(sampler=optuna.samplers.RandomSampler())
study.optimize(objective, n_trials=100)

optuna.visualization.plot_param_importances(study)

See also

This function visualizes the results of optuna.importance.get_param_importances().

Parameters
  • study – An optimized study.

  • evaluator – An importance evaluator object that specifies which algorithm to base the importance assessment on. Defaults to MeanDecreaseImpurityImportanceEvaluator.

  • params – A list of names of parameters to assess. If None, all parameters that are present in all of the completed trials are assessed.

Returns

A plotly.graph_objs.Figure object.

Note

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

optuna.visualization.plot_slice(study: optuna.study.Study, params: Optional[List[str]] = None) → go.Figure[source]

Plot the parameter relationship as slice plot in a study.

Note that, If a parameter contains missing values, a trial with missing values is not plotted.

Example

The following code snippet shows how to plot the parameter relationship as slice plot.

import optuna

def objective(trial):
    x = trial.suggest_uniform('x', -100, 100)
    y = trial.suggest_categorical('y', [-1, 0, 1])
    return x ** 2 + y

study = optuna.create_study()
study.optimize(objective, n_trials=10)

optuna.visualization.plot_slice(study, params=['x', 'y'])
Parameters
  • study – A Study object whose trials are plotted for their objective values.

  • params – Parameter list to visualize. The default is all parameters.

Returns

A plotly.graph_objs.Figure object.

optuna.visualization.is_available()bool[source]

Returns whether visualization is available or not.

Note

visualization module depends on plotly version 4.0.0 or higher. If a supported version of plotly isn’t installed in your environment, this function will return False. In such case, please execute $ pip install -U plotly>=4.0.0 to install plotly.

Returns

True if visualization is available, False otherwise.