Как получить доступ к глубине дерева в Python scikit-learn?

Я использую scikit-learn для создания Random Forest. Однако я хочу найти индивидуальные глубины каждого дерева. Это похоже на простой атрибут, но в соответствии с документацией (http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html) нет доступа к нему.

Если это невозможно, существует ли способ доступа к глубине дерева из модели дерева решений?

Любая помощь будет оценена по достоинству. Спасибо.

Ответ 1

Каждый экземпляр RandomForestClassifier имеет атрибут estimators_, который представляет собой список DecisionTreeClassifier экземпляров. Документация показывает, что экземпляр DecisionTreeClassifier имеет атрибут tree_, который является экземпляром класса (недокументированный, я считаю) Tree. Некоторые исследования в интерпретаторе показывают, что каждый экземпляр Tree имеет параметр max_depth, который, как представляется, является тем, что вы ищете - снова, он недокументирован.

В любом случае, если forest является вашим экземпляром RandomForestClassifier, то:

>>> [estimator.tree_.max_depth for estimator in forest.estimators_]
[9, 10, 9, 11, 9, 9, 11, 7, 13, 10]

должен сделать трюк.