
[英]mapping scikit-learn DecisionTreeClassifier.tree_.value to predicted class
[英]What does scikit-learn DecisionTreeClassifier.tree_.value do?
我正在研究 DecisionTreeClassifier 模型,我想了解模型选择的路径。 所以我需要知道什么值赋予
DecisionTreeClassifier.tree_.value
好吧,您是对的,因为文档实际上对此很模糊(但说实话,我也不确定它的用处)。
让我们使用 iris 数据复制文档中的示例:
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.]]
(对应于橙色节点):它表示,在此节点中,结束从第 0 类中抽取 50 个样本,从其他两个类(#1 和 #2)中抽取 0 个样本。
希望这有助于...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.