optuna.importance.PedAnovaImportanceEvaluator
- class optuna.importance.PedAnovaImportanceEvaluator(*, baseline_quantile=0.1, evaluate_on_local=True)[source]
PED-ANOVA 超参数重要性评估器。
实现了 PED-ANOVA 超参数重要性评估算法。
PED-ANOVA 拟合了
COMPLETE试次的 Parzen 估计器,优于用户指定的基线。用户可以通过分位数来指定基线。重要性可以解释为每个超参数对于获得优于基线的性能有多重要。有关 PED-ANOVA 算法的更多信息,请参阅以下论文:
注意
PED-ANOVA 的性能取决于考虑高于基线的试次数。为了稳定分析,建议包含至少 5 个高于基线的试次。
注意
请参阅 原始工作。
- 参数:
示例
使用 PED-ANOVA 的一个示例如下:
import optuna from optuna.importance import PedAnovaImportanceEvaluator def objective(trial): x1 = trial.suggest_float("x1", -10, 10) x2 = trial.suggest_float("x2", -10, 10) return x1 + x2 / 1000 study = optuna.create_study() study.optimize(objective, n_trials=100) evaluator = PedAnovaImportanceEvaluator() importance = optuna.importance.get_param_importances(study, evaluator=evaluator)
注意
于 v3.6.0 添加为实验性功能。接口可能在新版本中更改,恕不另行通知。请参阅 https://github.com/optuna/optuna/releases/tag/v3.6.0。
方法
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) –
指定用于评估重要性的值的函数。如果为
None且study用于单目标优化,则使用目标值。也可用于其他 trial 属性,例如持续时间,如target=lambda t: t.duration.total_seconds()。注意
如果
study用于多目标优化,请指定此参数。例如,要获得第一个目标的超参数重要性,请使用target=lambda t: t.values[0]作为 target 参数。
- 返回:
一个
dict,其中键是参数名称,值是评估的重要性。- 返回类型: