30

ランダム フォレストの決定木をプロットします。したがって、次のコードを作成します。

clf = RandomForestClassifier(n_estimators=100)
import pydotplus
import six
from sklearn import tree
dotfile = six.StringIO()
i_tree = 0
for tree_in_forest in clf.estimators_:
if (i_tree <1):        
    tree.export_graphviz(tree_in_forest, out_file=dotfile)
    pydotplus.graph_from_dot_data(dotfile.getvalue()).write_png('dtree'+ str(i_tree) +'.png')
    i_tree = i_tree + 1

しかし、それは何も生成しません..ランダムフォレストから決定木をプロットする方法を知っていますか?

ありがとうございました、

4

6 に答える 6

38

ランダム フォレスト モデルが既に適合していると仮定すると、最初にexport_graphviz関数をインポートする必要があります。

from sklearn.tree import export_graphviz

forサイクルでは、次のようにしてdotファイルを生成できます

export_graphviz(tree_in_forest,
                feature_names=X.columns,
                filled=True,
                rounded=True)

次の行はpngファイルを生成します

os.system('dot -Tpng tree.dot -o tree.png')
于 2016-10-21T14:14:50.910 に答える