【发布时间】:2018-05-22 23:21:53
【问题描述】:
我正在研究 DecisionTreeClassifier 模型,我想了解模型选择的路径。所以我需要知道什么值给了
DecisionTreeClassifier.tree_.value
【问题讨论】:
标签: python machine-learning scikit-learn decision-tree
我正在研究 DecisionTreeClassifier 模型,我想了解模型选择的路径。所以我需要知道什么值给了
DecisionTreeClassifier.tree_.value
【问题讨论】:
标签: python machine-learning scikit-learn decision-tree
嗯,你是对的,因为文档实际上对此很模糊(但老实说,我也不确定它的用处)。
让我们用虹膜数据复制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 是一个数组数组,长度等于树中的节点数用一个例子来澄清最后一点,考虑数组的第二个元素[[ 50., 0., 0.]](对应于橙色节点):它说,在这个节点中,最终有来自类的 50 个样本#0,其他两个类(#1 和 #2)的样本为零。
希望这会有所帮助...
【讨论】: