mapping scikit-learn DecisionTreeClassifier.tree_.value to predicted class

拥有回忆 提交于 2020-01-24 03:59:04

问题


I am using a scikit-learn DecissionTreeClassifier on a 3 class dataset. After I fit the classifier I access all leaf nodes on the tree_ attribute in order to get the amount of instances that end up in a given node for each class.

clf = tree.DecisionTreeClassifier(max_depth=5)
clf.fit(X, y)
# lets assume there is a leaf node with id 5
print clf.tree_.value[5]

This will print out:

>>> array([[  0.,   1.,  68.]])

but ... how do I know which position in that array belongs to which class ? The classifier has a classes_ attribute which is also a list

>>> clf.classes_
array(['CLASS_1', 'CLASS_2', 'CLASS_3'], dtype=object)

Maybe index 1 on the value array matches the class on index 1 of the classes array and so on?


回答1:


Asked about this on the scikit-learm mailing list and my guess was right. Turns out the index 1 on the value array matches the class on index 1 of the classes array and so on




回答2:


No, it is not clf.classes_ but clf.tree_.feature that contain the column index of X. And, if X is Pandas DataFrame, X.columns contains the name. You can find more detailed information in a similar question.



来源:https://stackoverflow.com/questions/26207451/mapping-scikit-learn-decisiontreeclassifier-tree-value-to-predicted-class

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!