>source

랜덤 포레스트 분류기를 만들었고랜덤 포레스트 모델의 나무 깊이에 대한 히스토그램을 생성하려고합니다. 숲에있는 모든 나무의 깊이를 추출 할 수 없습니다.

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

    인터프리터의 일부 탐험에 따르면 각 Tree 는  인스턴스에 max_depth 가 있습니다  내가 찾고있는 것으로 보이는 매개 변수-다시 문서화되지 않았습니다.

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

    나에게 속임수를 썼다 :)

  • 이전 python 3.x - Azure 외부에 배포 된 웹 서비스 사용
  • 다음 ios - 여러 컬렉션 중첩