optuna.importance.FanovaImportanceEvaluator

class optuna.importance.FanovaImportanceEvaluator(*, n_trees=64, max_depth=64, seed=None)[source]

fANOVA 重要性评估器。

实现了 fANOVA 超参数重要性评估算法,其灵感来源于 An Efficient Approach for Assessing Hyperparameter Importance

fANOVA 拟合一个随机森林回归模型,该模型可以根据参数配置预测 COMPLETE 试验的目标值。该模型越准确,该类评估的重要性就越可靠。

注意

需要 sklearn Python 包。

注意

fANOVA 的性能取决于底层随机森林模型的预测性能。为了获得高预测性能,需要覆盖超参数搜索空间的广泛范围。推荐使用探索导向的采样器,例如 RandomSampler

注意

关于如何引用原始工作,请参阅 https://automl.net.cn/fanova/cite.html

参数:
  • n_trees (int) – 森林中的树的数量。

  • max_depth (int) – 森林中树的最大深度。

  • seed (int | None) – 控制森林的随机性。为了获得确定性的行为,请指定一个非 None 的值。

方法

evaluate(study[, params, target])

根据给定研究中的已完成试验评估参数重要性。

evaluate(study, params=None, *, target=None)[source]

根据给定研究中的已完成试验评估参数重要性。

注意

此方法不应由库用户调用。

另请参阅

请参阅 get_param_importances() 以了解具体评估器应如何实现此方法。

参数:
  • study (Study) – 一个经过优化的 study。

  • params (list[str] | None) – 要评估的参数名称列表。如果为 None,则评估所有在所有已完成的 trial 中存在的参数。

  • target (Callable[[FrozenTrial], float] | None) –

    一个用于指定评估重要性值的函数。如果它为 Nonestudy 用于单目标优化,则将使用目标值。也可以用于其他试验属性,例如持续时间,如 target=lambda t: t.duration.total_seconds()

    注意

    如果 study 用于多目标优化,请为此参数指定一个值。例如,要获取第一个目标的超参数重要性,请使用 target=lambda t: t.values[0] 作为目标参数。

返回:

一个 dict,其中键是参数名称,值是评估的重要性。

返回类型:

dict[str, float]