2017-03-14 10 views
3

私はタイタニックデータセット上の標準randomforestclassifierを実装し、v0.18で導入されたsklearnのdecision_path方法を模索したいと考えていました。 (http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.htmlランダムフォレスト分類子の決定パス方式(scikit)

しかし、それは私がの意味を理解するかどうかは定かではないよスパース行列を出力します。これをどのように視覚化するのがよいかアドバイスできますか?

#Training a simplified random forest 
estimator = RandomForestClassifier(random_state=0, n_estimators=3, max_depth=3) 
estimator.fit(X_train, y_train) 

#Extracting the decision path for instance i = 12 
i_data = X_test.iloc[12].values.reshape(1,-1) 
d_path = rf_best.decision_path(i_data) 

print(d_path) 

出力:

(圧縮スパース行形式で598個の 格納された要素を有するタイプの< 1x3982疎行列 ''>、アレイ([0、45、
98、149、190 、233、258、309、360、401、430、 461、512、541、580、623、668、711、760、803、852、889、 932、981、1006、1035、1074、1107、1136 、1165,1196,1241,1262, 1313,1350,1385,1420,1465,1518,1553,1590,1625,1672,1707, 17 44、1787、1812、1863、1904、1945、1982、2017、2054、2097、2142、 2191、2228、2267、2304、2343、2390、2419、2456、2489、2534、2583、 2632、2677、 2714、2739、2786、2833、2886、2919、2960、2995、3032、 3073、3126、3157、3194、3239、3274、3313、3354、3409、3458、3483、 3516、3539、3590、3629、 3660、3707、3750、3777、3822、3861、3898、3939 、3982]、DTYPE = INT32))

謝罪私は十分な詳細を提供していないよ場合 - 私はそう知らせてください。

ありがとうございます!

注:あなたは森の中で木を視覚化したい場合編集がランダムフォレスト(リミット深さとn_trees)

+0

助けることができれば、おそらくそれを行うには、よりスマートな方法があります、私はそれを学ぶために幸せになるだろう小さなサンプルデータセットを作成し、結果を簡単にするためにフォレスト内の少数のツリーのみを使用します。 – BrenBarn

+0

私もこれを知ることに興味があります。ドキュメントからは、出力をどのように解釈するかについてはあまり明確ではありません。私が知っている唯一の事はSklearnが決定表を視覚化する方法に関するチュートリアルを持っているということです:http://scikit-learn.org/stable/auto_examples/ensemble/plot_forest_iris.html – robodasha

+0

@BrenBarn私は木の数を減らしました結果を簡単にし、単一のデータインスタンスしか使用しませんでした。お役に立てれば。 – jc023

答えて

2

を簡素化するために、あなたがここで提供さ答えてみてください:https://stats.stackexchange.com/q/118016

があなたへの適応を問題:

from sklearn import tree 

... 

i_tree = 0 
for tree_in_forest in estimator.estimators_: 
    with open('tree_' + str(i_tree) + '.dot', 'w') as my_file: 
     my_file = tree.export_graphviz(tree_in_forest, out_file = my_file) 
    i_tree = i_tree + 1 

このあなたは番目の各1用のPDFファイルを作成することができます0〜9 =私のためにtree_i.dotと呼ばれるファイルを10(森の中の木のデフォルト数)を作成しますEMは、(例えば)の端末でやって:

$ dot -Tpdf tree_0.dot -o tree.pdf 

誰もがあなたが始めることをお勧めします:)

+1

ありがとうLuciana。これは間違いないが、われわれは依然として(個々の木とは対照的に)森林全体の決定経路を視覚化するという問題に悩まされている。 ?jc023.I @ – jc023

+0

は、あなたが解決策を見つけた同じdoubt.Haveを持っているあなたは – Jayashree

+0

は[TreeInterpreter](HTTPSがあります@Jayashree結果の解釈に私を助けることができます:// githubのは。com/andosa/treeinterpreter)パッケージも含まれています。 – ldavid

関連する問題