optuna.importance.get_param_importances

optuna.importance.get_param_importances(study, *, evaluator=None, params=None, target=None, normalize=True)[源码]

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

参数重要性以字典形式返回,其中键是参数名称,值是其重要性。重要性由非负浮点数表示,数值越高表示参数越重要。返回的字典按值降序排列。默认情况下,重要性值之和被归一化为 1.0。

如果 paramsNone,则评估所有已完成试验中存在的所有参数。这意味着条件参数将从评估中排除。要评估条件参数的重要性,可以通过 params 指定一个参数名称的 list。如果指定,将只考虑包含所有这些参数的已完成试验。如果找不到这样的试验,将引发错误。

如果给定的研究不包含已完成的试验,将引发错误。

注意

如果 params 被指定为空列表,则返回一个空字典。

另请参阅

参阅 plot_param_importances() 以绘制重要性。

参数:
  • study (Study) – 已优化的研究。

  • evaluator (BaseImportanceEvaluator | None) –

    一个重要性评估器对象,用于指定基于何种算法进行重要性评估。默认为 FanovaImportanceEvaluator

    注意

    FanovaImportanceEvaluator 在给定包含 1000+ 次试验的研究时需要 1 分钟以上。我们发布了 optuna-fast-fanova 库,这是一个使用 Cython 加速的 fANOVA 实现。通过使用它,您可以在几秒钟内获得超参数重要性。如果 n_trials 超过 10000,Cython 实现需要一分钟以上,因此您可以改用 PedAnovaImportanceEvaluator,从而使评估在一秒钟内完成。

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

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

    一个函数,用于指定评估重要性的值。如果为 Nonestudy 用于单目标优化,则使用目标值。target 必须在 study 用于多目标优化时指定。

    注意

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

  • normalize (bool) –

    一个布尔选项,用于指定重要性值之和是否应归一化为 1.0。默认为 True

    注意

    在 v3.0.0 中作为实验性特性添加。其接口可能在更新版本中更改,恕不另行通知。参阅 https://github.com/optuna/optuna/releases/tag/v3.0.0

返回:

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

返回类型:

dict[str, float]