optuna.importance.FanovaImportanceEvaluator
- class optuna.importance.FanovaImportanceEvaluator(*, n_trees=64, max_depth=64, seed=None)[source]
fANOVA 重要度評価器
An Efficient Approach for Assessing Hyperparameter Importance で提案された fANOVA アルゴリズムを実装しています。
fANOVA は、パラメータ設定から
COMPLETE
トライアルの目的値を予測する ランダムフォレスト回帰モデルを構築します。このモデルの予測精度が高いほど、 本クラスが算出する重要度の信頼性も向上します。Note
本クラスは 1000 トライアル以上のスタディに対して 1 分以上の処理時間を要します。 より高速な実装として optuna-fast-fanova ライブラリを 公開しています。これを使用することで、数秒以内に重要度を算出できます。
Note
本アルゴリズムの実行には scikit-learn パッケージが必要です。
Note
fANOVA の性能は基礎となるランダムフォレストモデルの予測精度に依存します。 高精度な予測を得るためには、ハイパーパラメータ探索空間を広くカバーする必要があります。
RandomSampler
などの探索指向サンプラーの使用を推奨します。Note
原論文の引用方法については、 https://automl.github.io/fanova/cite.html を参照してください。
- Parameters:
メソッド
evaluate
(study[, params, target])Evaluate parameter importances based on completed trials in the given study.
- evaluate(study, params=None, *, target=None)[source]
指定されたスタディの完了済みトライアルに基づいてパラメータ重要度を評価します。
Note
このメソッドはライブラリ利用者が直接呼び出すことを想定していません。
See also
具体的な評価器の実装方法については、
get_param_importances()
を参照してください。- Parameters:
study (Study) – 最適化済みスタディ
params (list[str] | None) – 評価対象のパラメータ名のリスト
None
の場合、完了済みトライアルに存在する全パラメータが評価対象となります。target (Callable[[FrozenTrial], float] | None) –
重要度評価値を指定する関数
None
でstudy
が単一目的最適化に使用されている場合、目的値が使用されます。 トライアルの所要時間など、他の属性も指定可能です (例:target=lambda t: t.duration.total_seconds()
)。Note
study
が多目的最適化に使用されている場合、この引数を指定する必要があります。 例えば、最初の目的のハイパーパラメータ重要度を取得するには、target=lambda t: t.values[0]
のように指定します。
- Returns:
パラメータ名をキー、評価された重要度を値とする
dict
- Return type: