# optuna.importance.MeanDecreaseImpurityImportanceEvaluator¶

class optuna.importance.MeanDecreaseImpurityImportanceEvaluator(*, n_trees=64, max_depth=64, seed=None)[source]

Mean Decrease Impurity (MDI) parameter importance evaluator.

This evaluator fits a random forest that predicts objective values given hyperparameter configurations. Feature importances are then computed using MDI.

Note

This evaluator requires the sklean Python package and is based on sklearn.ensemble.RandomForestClassifier.feature_importances_.

Parameters
• n_trees – Number of trees in the random forest.

• max_depth – The maximum depth of each tree in the random forest.

• seed – Seed for the random forest.

Methods

 evaluate(study[, params, target]) Evaluate parameter importances based on completed trials in the given study.
evaluate(study, params=None, *, target=None)[source]

Evaluate parameter importances based on completed trials in the given study.

Note

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

Please refer to get_param_importances() for how a concrete evaluator should implement this method.

Parameters
• study (optuna.study.Study) – An optimized study.

• params (Optional[List[str]]) – A list of names of parameters to assess. If None, all parameters that are present in all of the completed trials are assessed.

• target (Optional[Callable[[optuna.trial._frozen.FrozenTrial], float]]) –

A function to specify the value to evaluate importances. If it is None and study is being used for single-objective optimization, the objective values are used.

Note

Specify this argument if study is being used for multi-objective optimization.

Returns

An collections.OrderedDict where the keys are parameter names and the values are assessed importances.

Raises

ValueError – If target is None and study is being used for multi-objective optimization.

Return type

Dict[str, float]