Visualization¶
注解
visualization
采用 plotly 来创建图表,但是 JupyterLab 无法在默认情况下渲染这些图表。请按照这个 installation guide 来配置 JupyterLab 中的图表显示。
-
optuna.visualization.
plot_contour
(study: optuna.study.Study, params: Optional[List[str]] = None) → go.Figure[源代码]¶ 将参数关系画成等高线图。
注意,如果某个参数包含了缺失值,那么包含该参数的 trial 将不会被绘制。
示例
下面的代码展示了如何将参数关系画成一个等高线图。
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'])
- 参数
study --
Study
类,其包含的 trials 的目标函数值将参与绘图。params -- 需要可视化的参数列表,默认情况下将是全部参数。
- 返回
A
plotly.graph_objs.Figure
object.
-
optuna.visualization.
plot_intermediate_values
(study: optuna.study.Study) → go.Figure[源代码]¶ 画出一个 study 中的全部 trial 的中间值。
示例
下面的代码展示了如何绘制中间值。
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)
- 参数
study --
Study
类,其包含的 trials 的目标函数中间值将参与绘图。- 返回
A
plotly.graph_objs.Figure
object.
-
optuna.visualization.
plot_optimization_history
(study: optuna.study.Study) → go.Figure[源代码]¶ 画出一个 study 中所有 trial 的优化历史记录。
示例
下面的代码展示了如何绘制优化历史记录。
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)
- 参数
study --
Study
类,其包含的 trials 的目标函数值将参与绘图。- 返回
A
plotly.graph_objs.Figure
object.
-
optuna.visualization.
plot_parallel_coordinate
(study: optuna.study.Study, params: Optional[List[str]] = None) → go.Figure[源代码]¶ 绘制一个 study 中高维度参数的关系图。
注意,如果某个参数包含了缺失值,那么包含该参数的 trial 将不会被绘制。
示例
下面的代码展示了如何绘制高维度参数的关系图。
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'])
- 参数
study --
Study
类,其包含的 trials 的目标函数值将参与绘图。params -- 需要可视化的参数列表,默认情况下将是全部参数。
- 返回
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[源代码]¶ 画出超参数的重要性
示例
下面的代码展示了如何绘制超参数的重要性图
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)
参见
该函数对
optuna.importance.get_param_importances()
的结果进行可视化。- 参数
study -- 优化结束的 study.
evaluator -- 参数重要性求解器。它指定评估重要性的算法。默认情况下它会被设定成
MeanDecreaseImpurityImportanceEvaluator
.params -- 参与评估的参数名列表。如果设置成
None
的话,全部的、属于所有已完成 trial 的参数都将参与评估。
- 返回
A
plotly.graph_objs.Figure
object.
注解
v1.5.0 版本中新加入的试验性特性。在未来的版本中,该接口可能在没有预先告知的情况下改变。 具体参见 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[源代码]¶ 绘制一个 study 中的参数关系切片图。
注意,如果某个参数包含了缺失值,那么包含该参数的 trial 将不会被绘制。
示例
下面的代码展示了如何绘制参数关系切片图。
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'])
- 参数
study --
Study
类,其包含的 trials 的目标函数值将参与绘图。params -- 需要可视化的参数列表,默认情况下将是全部参数。
- 返回
A
plotly.graph_objs.Figure
object.