optuna.importance.get_param_importances
- optuna.importance.get_param_importances(study, *, evaluator=None, params=None, target=None, normalize=True)[源码]
根据给定研究中已完成的试验来评估参数重要性。
参数重要性以字典形式返回,其中键是参数名称,值是其重要性。重要性由非负浮点数表示,数值越高表示参数越重要。返回的字典按值降序排列。默认情况下,重要性值之和被归一化为 1.0。
如果
params
是None
,则评估所有已完成试验中存在的所有参数。这意味着条件参数将从评估中排除。要评估条件参数的重要性,可以通过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) –
一个函数,用于指定评估重要性的值。如果为
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
,其中键是参数名称,值是评估的重要性。- 返回类型: