gpt4 book ai didi

python - Optuna 多目标优化的最佳参数

转载 作者:行者123 更新时间:2023-12-01 23:34:09 27 4
gpt4 key购买 nike

使用 Optuna 执行单目标优化时,研究的最佳参数可使用:

import optuna
def objective(trial):
x = trial.suggest_uniform('x', -10, 10)
return (x - 2) ** 2

study = optuna.create_study(direction='minimize')
study.optimize(objective, n_trials=100)

study.best_params # E.g. {'x': 2.002108042}

如果我想执行多目标优化,这将变成例如:

import optuna
def multi_objective(trial):
x = trial.suggest_uniform('x', -10, 10)
f1 = (x - 2) ** 2
f2 = -f1
return f1, f2

study = optuna.create_study(directions=['minimize', 'maximize'])
study.optimize(multi_objective, n_trials=100)

这行得通,但是命令 study.best_params 失败并显示 RuntimeError: The best trial of a 'study' is only supported for single-objective optimization.

如何获得多目标优化的最佳参数?

最佳答案

在多目标优化中,您通常会得到不止一个最佳试验,而是一组试验。这个集合通常被称为 Pareto 前沿。您可以通过 study.best_trials 获得此帕累托前沿或试验列表。 ,然后查看每个单独试验的参数,即 study.best_trials[some_index].params

例如,给定最小化 f1 和最大化 f2 的方向,您最终可能会得到 f1 值较小的试验>(好)但同时 f2(坏)的值很小,而另一个试验可能对 f1(坏)和 f2< 都有很大的值(好)。这两个试验都可以从 study.best_trials 返回。

关于python - Optuna 多目标优化的最佳参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65833998/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com