optuna.terminator.EMMREvaluator

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

评估一种遗憾,称为预期最小模型遗憾 (EMMR)。

EMMR 是优化过程中“预期最小简单遗憾”的上限。

预期最小简单遗憾是一个量,只有当优化过程找到了全局最优解时,该量才会收敛到零。

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

此外,还有我们解释此评估器的博客文章

参数:
  • 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)