【问题标题】:How can I output the node making a prediction using sklearn.tree?如何输出使用 sklearn.tree 进行预测的节点?
【发布时间】:2015-02-28 17:52:00
【问题描述】:

我想获取使用 sklearn.tree 进行预测的节点的所有信息。

例如:

from sklearn.datasets import load_iris
nfrom sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier()
iris = load_iris()
clf = clf.fit(iris.data, iris.target)

现在我们可以使用以下方法预测类:

clf.predict(iris.data[0, :])

如何获取进行预测的叶子节点以及叶子中存储的信息?

我知道上面示例中树的图形表示如下:

http://scikit-learn.org/stable/modules/tree.html#tree-classification

所以我知道输入iris.data[0, :](第一个左孩子)对应的节点有如下统计:

  • 错误=0
  • 样本=50
  • 值 = [50 0 0]

是否可以在不打印树的情况下自动获取输出节点和(以上)信息?根据我目前的理解,关键是获取叶节点的 ID 进行预测,然后将相关统计信息包含在 clf.tree_.value[ID]clf.tree_.n_samples[ID].

谢谢

【问题讨论】:

    标签: python scikit-learn regression


    【解决方案1】:

    看看this的问题。它说明了如何获取叶子的 ID。然后你可以使用clf.tree_.valueclf.tree.n_samples

    【讨论】:

    • 谢谢! X=((iris.data[0, :]).astype(np.float32)).reshape(1,-1) 然后 clf.tree_.apply(X)[0] 返回正确的节点
    猜你喜欢
    • 2016-05-25
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多