optuna.importance.get_param_importances

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

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

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

如果 paramsNone,则评估所有在所有已完成的 trial 中都存在的参数。这意味着条件参数将被排除在评估之外。要评估条件参数的重要性,可以通过 params 指定参数名称的 list。如果指定了,则只考虑包含所有参数的已完成的 trial。如果没有找到这样的 trial,将引发错误。

如果给定的 study 不包含已完成的 trial,将引发错误。

注意

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

另请参阅

请参阅 plot_param_importances() 来绘制重要性。

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

  • evaluator (BaseImportanceEvaluator | None) – 一个重要性评估器对象,用于指定基于哪种算法进行重要性评估。默认为 FanovaImportanceEvaluator

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

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

    一个指定要评估重要性的值的函数。如果它是 None 并且 study 被用于单目标优化,则使用目标值。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]