2017-09-06 14 views
0

DecisionTreeClassifierのインスタンスに合っており、各ノードの予測確率を抽出しようとしています。以下に示すようなカスタムの決定木の視覚化を作成するには、これが必要です。訓練を受けたSklearnのツリーノードから予測される確率DecisionTreeClassifier

各ノードの機能としきい値をエクスポートできます。

dtc.tree_.feature 
Out[72]: array([93, 36, 92, 51, 84, -2, 20, -2, -2, -2, -2, -2, 6, -2, -2]) 

dtc.tree_.threshold 
Out[73]: 
array([ 50.5  , 0.5  , 85.50991821, 0.5  , 
     5.5  , -2.  , 0.5  , -2.  , 
     -2.  , -2.  , -2.  , -2.  , 
     0.5  , -2.  , -2.  ]) 

理想的には、これと同様の方法で各ノードの予測確率をエクスポートします。

dtc.tree_.probability 
Out[xx]: 
array([0.50, 0.42, 0.21, 0.45, 0.62, ....]) 

これは可能ですか?

enter image description here

+0

多分これは助けることができます:http://scikit-learn.org/stable/auto_examples/tree/plot_unveil_tree_structure.html#sphx-glr-auto-examples-tree- plot-beveil-tree-structure-py –

+0

この例は、フィーチャとしきい値を見つけるのに役立ちましたが、各決定パスに基づいてサンプルを人為的に作成する以外に、各ノードの確率を抽出する方法はありません。そして、それは私にターミナルノードを与えるだけです:/ – Selah

答えて

0

私は、値が各クラスに落ちたサンプルの数であると私の「予測確率は、」与えられたクラスに落ちたサンプルの割合と見なすことができることを発見しました。したがって、私は、次を使用して計算することができます。

samples = dtc.tree_.n_node_samples 
class1_positives = dtc.tree_.value[:,0,1] 
probs = (class1_positives/samples).tolist() 
関連する問題