Есть ли способ извлечь глубины дерева из модели случайного леса? - PullRequest
0 голосов
/ 21 мая 2019

Я создал классификатор Случайного леса и пытаюсь составить гистограмму глубин деревьев моей модели случайного леса .Я просто не могу извлечь глубину каждого дерева в моем лесу.

Моя модель RF называется 'RF_optimised', и я попробовал приведенный ниже код, чтобы перебрать мои деревья и визуализировать, что сработало,Я просмотрел документацию estimators_ и export_graphviz, но, похоже, нет способа извлечь фактическую глубину дерева.

from sklearn import tree
from sklearn.tree import export_graphviz
from sklearn.externals.six import StringIO

# Create a string buffer to write to (a fake text file)
f = StringIO()

i_tree = 0
for tree_in_forest in RF_optimised.estimators_:

    export_graphviz(tree_in_forest,out_file=f,
    #feature_names=col,
    filled=True,
    rounded=True,
    proportion=True)

    graph = pydotplus.graph_from_dot_data(f.getvalue())
    display(Image(graph.create_png()))

Мне нужна функция, которая перебирает деревья вмой случайный лес и хранит глубину деревьев в списке или во фрейме данных, чтобы позже создать гистограмму.Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 22 мая 2019

Некоторые исследования в интерпретаторе показывают, что каждый экземпляр Tree имеет параметр max_depth, который, по-видимому, является тем, что я ищу, - опять же, он недокументирован.

[estimator.tree_.max_depth for estimator in RF_optimised.estimators_]

сделал свое дело для меня :)

...