2017-12-08 6 views
1

DecisionTreeClassifier 모델에서 작업 중이며 모델에서 선택한 경로를 이해하고자합니다. 그래서scikit-DecisionTreeClassifier.tree_.value가하는 일은 무엇입니까?

+0

http://scikit-learn.org/stable/auto_examples/tree/plot_unveil_tree_structure.html – Pavel

+2

는 –

+0

이 확실하지 않음이 경우 감사합니다 찾고자하는 것이지만'estimator.decision_path (Xtest)'를 시도하거나 실제'estimator._tree.value'가 리턴하는 것을 찾고 있습니까? – hallaksec

답변

4

글쎄, 당신이 올바른지 문서는 이것에 대해 실제로 불분명, 값이

DecisionTreeClassifier.tree_.value 

감사합니다 줄 것을 알아야합니다 (그러나 솔직히 말해서, 나는 확실하지 않다 그것의 유용성).

의 홍채 데이터와 documentation에서 예를 복제 보자

from sklearn.datasets import load_iris 
from sklearn import tree 
iris = load_iris() 
clf = tree.DecisionTreeClassifier() 
clf = clf.fit(iris.data, iris.target) 

clf.tree_.value에 대한 요구, 우리가 얻을 :

array([[[ 50., 50., 50.]], 
     [[ 50., 0., 0.]], 
     [[ 0., 50., 50.]], 
     [[ 0., 49., 5.]], 
     [[ 0., 47., 1.]], 
     [[ 0., 47., 0.]], 
     [[ 0., 0., 1.]], 
     [[ 0., 2., 4.]], 
     [[ 0., 0., 3.]], 
     [[ 0., 2., 1.]], 
     [[ 0., 2., 0.]], 
     [[ 0., 0., 1.]], 
     [[ 0., 1., 45.]], 
     [[ 0., 1., 2.]], 
     [[ 0., 1., 0.]], 
     [[ 0., 0., 2.]], 
     [[ 0., 0., 43.]]]) 

len(clf.tree_.value) 
# 17 

무엇을 실현하기 위해 정확히이 배열 이 (편의를 위해 여기에 재생되는 문서 형태로도 주문 가능합니다) 트리 시각화를보고 유용 대표 :

enter image description here

우리는 나무는 17 개 노드가, 볼 수 있듯이, 각 노드의 value은 사실 clf.tree_.value 어레이의 요소라는 것을 알 수 있습니다.

  • clf.tree_.value가에 해당하는 트리
  • 의 요소 배열의 각 (노드의 수와 동일한 길이의 배열의 배열입니다 :

    그래서 짧은 긴 이야기를 만들기 위해 트리 노드)의 길이는 클래스 수 (여기서는 3)와 같습니다.

  • 이러한 3 요소 배열 각각은 각 클래스의 해당 노드에서 끝나는 학습 샘플의 양에 해당합니다.

이 예와 마지막 시점에 명확히 이 어레이의 두 번째 요소를 고려 [[ 50., 0., 0.]]는 (오렌지색 노드에 상당)는,이 노드에서 50 개 샘플을 끝낸다 말한다 클래스 # 0 및 다른 두 클래스 (# 1 및 # 2)의 샘플이 0입니다. 내가 거기에 내 대답은 찾지 못했습니다이 도움이

희망 ...

+1

그게 내가 찾고있는거야, 고마워! –

+0

@OussamaJabri 매우 환영합니다. – desertnaut

관련 문제