【发布时间】:2021-01-21 18:54:17
【问题描述】:
使用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.
如何获得多目标优化的最佳参数?
【问题讨论】:
标签: python optimization optuna