optuna.terminator.EMMREvaluator

class optuna.terminator.EMMREvaluator(deterministic_objective=False, delta=0.1, min_n_trials=2, seed=None)[source]

评估一种称为“期望最小模型遗憾”(Expected Minimum Model Regret, EMMR)的遗憾。

EMMR 是优化过程中“期望最小简单遗憾”(expected minimum simple regret)的上界。

期望最小简单遗憾是指一个仅当优化过程找到全局最优解时才会收敛于零的数量。

有关期望最小简单遗憾和算法的更多信息,请参考以下论文:

此外,我们还发布了一篇博客文章解释此评估器:

参数:
  • deterministic_objective (bool) – 一个布尔值,指示目标函数是否是确定性的。默认为 False

  • delta (float) – 与终止准则相关的浮点数。默认为 0.1。有关此参数的详细信息,请参阅上述论文。

  • min_n_trials (int) – 用于计算准则的最小完整试验次数。默认为 2。

  • seed (int | None) – EMMREvaluator 的随机种子。

示例

import optuna
from optuna.terminator import EMMREvaluator
from optuna.terminator import MedianErrorEvaluator
from optuna.terminator import Terminator

sampler = optuna.samplers.TPESampler(seed=0)
study = optuna.create_study(sampler=sampler, direction="minimize")
emmr_improvement_evaluator = EMMREvaluator()
median_error_evaluator = MedianErrorEvaluator(emmr_improvement_evaluator)
terminator = Terminator(
    improvement_evaluator=emmr_improvement_evaluator,
    error_evaluator=median_error_evaluator,
)


for i in range(1000):
    trial = study.ask()

    ys = [trial.suggest_float(f"x{i}", -10.0, 10.0) for i in range(5)]
    value = sum(ys[i] ** 2 for i in range(5))

    study.tell(trial, value)

    if terminator.should_terminate(study):
        # Terminated by Optuna Terminator!
        break

注意

已在 v4.0.0 中添加为实验性功能。界面在后续版本中可能在未经事先通知的情况下进行更改。请参阅 https://github.com/optuna/optuna/releases/tag/v4.0.0

方法

evaluate(trials, study_direction)