Hyperparameter Importance

optuna.importance.get_param_importances(study: optuna.study.Study, evaluator: optuna.importance._base.BaseImportanceEvaluator = None, params: Optional[List[str]] = None) → Dict[str, float][源代码]

根据给定 study 中完成的trial 来判断特定参数的重要性。

参数重要性以字典形式返回,其中键由参数名称及其重要性组成。重要性由浮点数表示,一个字典中所有的重要性之和为1.0该浮点数的值越高,其对应的参数也就越重要这个返回的字典属于 collections.OrderedDict 类,其中的元素会按照其中值的大小降序排序。

如果 params 被设置成 None, 那么所有属于已完成 trial 的参数都会被评估。这意味着,条件参数不会参与评估。要获得条件参数的重要性的话,你可以向 params 传入一个带有参数名的 list.此时,只有包含了这些参数的trial才会被评估。如果没有发现满足这种条件的trial的话,Optuna将会抛出一个错误。

如果给定的 study 不包含已完成的 trial 的话,Optuna将会抛出一个错误。

注解

如果 params 是一个空列表,那么将会返回一个空字典

参见

参考 plot_param_importances() 来查看如何绘制重要性的图表。

参数
  • study -- 一个已优化完的 study.

  • evaluator -- 重要性求解器。该求解器指定用于评估重要性的算法。默认情况下我们会使用 MeanDecreaseImpurityImportanceEvaluator.

  • params -- 参与评估的参数名列表。如果设置成 None 的话,所有的属于已完成 trial 的参数都会被评估。

返回

一个 collections.OrderedDict 类。它的键都是被评估过重要性的参数名。

注解

v1.3.0 版本中新加入的试验性特性。在未来的版本中,该接口可能在没有预先告知的情况下改变。 具体参见 https://github.com/optuna/optuna/releases/tag/v1.3.0.

class optuna.importance.FanovaImportanceEvaluator[源代码]

fANOVA 参数重要性求解器

注解

依赖 fanova <https://github.com/automl/fanova> 包。

参见

一种便捷的评估超参数重要性的途径 <http://proceedings.mlr.press/v32/hutter14.html>`_.

注解

v1.3.0 版本中新加入的试验性特性。在未来的版本中,该接口可能在没有预先告知的情况下改变。 具体参见 https://github.com/optuna/optuna/releases/tag/v1.3.0.

evaluate(study: optuna.study.Study, params: Optional[List[str]]) → Dict[str, float][源代码]

根据给定 study 中完成的trial 来判断特定参数的重要性。

注解

This method is not meant to be called by library users.

参见

参考 get_param_importances() 来看如何实现一个具体的求解器。

参数
  • study -- 一个已优化完的 study.

  • params -- 参与评估的参数名列表。如果设置成 None 的话,所有的属于已完成 trial 的参数都会被评估。

返回

一个 collections.OrderedDict 类。它的键都是被评估过重要性的参数名。

class optuna.importance.MeanDecreaseImpurityImportanceEvaluator(n_estimators: int = 16, max_depth: int = 64, random_state: Optional[int] = None)[源代码]

Mean Decrease Impurity (MDI) 参数重要性求解器。

该求解器会拟合一个随机森林用于根据给定的超参数设置预测目标函数值。然后特性重要性会通过 MDI 求解。

注解

该求解器依赖 sklean 包,它是基于 sklearn.ensemble.RandomForestClassifier.feature_importances_ 构建的。

参数
  • n_estimators -- 随机森林中的树数目。

  • max_depth -- 该随机森林中树的最大深度。

  • random_seed -- 该随机森林的种子。

注解

该特性在 v1.5.0 中被作为实验特性加入。在未来的版本中,该接口可能在没有预先告知的情况下改变。具体参见 https://github.com/optuna/optuna/releases/tag/v1.5.0.

evaluate(study: optuna.study.Study, params: Optional[List[str]]) → Dict[str, float][源代码]

根据给定 study 中完成的trial 来判断特定参数的重要性。

注解

This method is not meant to be called by library users.

参见

参考 get_param_importances() 来看如何实现一个具体的求解器。

参数
  • study -- 一个已优化完的 study.

  • params -- 参与评估的参数名列表。如果设置成 None 的话,所有的属于已完成 trial 的参数都会被评估。

返回

一个 collections.OrderedDict 类。它的键都是被评估过重要性的参数名。