10

我已经使用 scikit-learn 训练了一个随机森林模型,现在我想将它的树结构保存在一个文本文件中,以便我可以在其他地方使用它。根据此链接,树对象由许多并行数组组成,每个数组都保存有关树的不同节点的一些信息(例如,左孩子、右孩子、它检查的特征……)。但是似乎没有关于每个叶节点对应的类标签的信息!在上面链接中提供的示例中甚至没有提到它。

有谁知道存储在 scikit-learn 决策树结构中的类标签在哪里?

4

1 回答 1

6

查看以下文档sklearn.tree.DecisionTreeClassifier.tree_.value

from sklearn.datasets import load_iris
from sklearn.cross_validation import cross_val_score
from sklearn.tree import DecisionTreeClassifier

clf = DecisionTreeClassifier(random_state=0)
iris = load_iris()

clf.fit(iris.data, iris.target)

print(clf.classes_)

[0, 1, 2]

print(clf.tree_.value)

[[[ 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.   0.   2.]]

 [[  0.   1.   0.]]

 [[  0.   0.  43.]]]

clf.tree_.value“包含每个节点的常量预测值”中的每一行,( help(clf.tree_)) 对应于 index-to-index clf.classes_

有关(几乎)更多详细信息,请参见此答案

于 2017-05-24T13:05:21.693 回答