2017-07-30 5 views
1

私は訓練された決定木を持っています。私は、どのような決定経路からそれが予測されているか知りたいと思っている特徴ベクトルを入力すると、そのツリーのどの葉に新しい特徴が含まれるかが分かります。x_trainがデシジョンツリーを予測する場所からリーフのノード番号を取得するにはどうすればよいですか?

私はPythonのSklearnの意思決定ツリーの実装を使用しています。

+0

私はあなたがDecisionTreeオブジェクトのdecision_path(X、check_input = true)メソッドを使用する必要があると思います – sera

答えて

1

クラスのdecision_pathメソッドを使用して、ツリー内の決定パスにアクセスする方法があります。

from sklearn.ensemble import RandomForestClassifier 
from sklearn.datasets import load_iris 
import numpy as np 

data = load_iris() 

x = data.data 
y = data.target 

clf = RandomForestClassifier() 

clf.fit(x,y) 

clf.decision_path(x) 

結果:

(<150x140 sparse matrix of type '<type 'numpy.int64'>' 
with 5406 stored elements in Compressed Sparse Row format>, array([ 0, 13, 
26, 41, 54, 71, 86, 97, 106, 119, 140]))