DecisionTreeClassifier 모델에서 작업 중이며 모델에서 선택한 경로를 이해하고자합니다. 그래서scikit-DecisionTreeClassifier.tree_.value가하는 일은 무엇입니까?
답변
글쎄, 당신이 올바른지 문서는 이것에 대해 실제로 불분명, 값이
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
무엇을 실현하기 위해 정확히이 배열 이 (편의를 위해 여기에 재생되는 문서 형태로도 주문 가능합니다) 트리 시각화를보고 유용 대표 :
우리는 나무는 17 개 노드가, 볼 수 있듯이, 각 노드의 value
은 사실 clf.tree_.value
어레이의 요소라는 것을 알 수 있습니다.
clf.tree_.value
가에 해당하는 트리- 의 요소 배열의 각 (노드의 수와 동일한 길이의 배열의 배열입니다 :
그래서 짧은 긴 이야기를 만들기 위해 트리 노드)의 길이는 클래스 수 (여기서는 3)와 같습니다.
- 이러한 3 요소 배열 각각은 각 클래스의 해당 노드에서 끝나는 학습 샘플의 양에 해당합니다. 가
이 예와 마지막 시점에 명확히 이 어레이의 두 번째 요소를 고려 [[ 50., 0., 0.]]
는 (오렌지색 노드에 상당)는,이 노드에서 50 개 샘플을 끝낸다 말한다 클래스 # 0 및 다른 두 클래스 (# 1 및 # 2)의 샘플이 0입니다. 내가 거기에 내 대답은 찾지 못했습니다이 도움이
희망 ...
그게 내가 찾고있는거야, 고마워! –
@OussamaJabri 매우 환영합니다. – desertnaut
http://scikit-learn.org/stable/auto_examples/tree/plot_unveil_tree_structure.html – Pavel
는 –
이 확실하지 않음이 경우 감사합니다 찾고자하는 것이지만'estimator.decision_path (Xtest)'를 시도하거나 실제'estimator._tree.value'가 리턴하는 것을 찾고 있습니까? – hallaksec