我如何从决策树中预测 x_train 的位置获取叶子的节点号?

Posted

技术标签:

【中文标题】我如何从决策树中预测 x_train 的位置获取叶子的节点号?【英文标题】:how do i get the node number of the leaf from where x_train is being predicted of a decision tree? 【发布时间】:2018-01-06 06:28:15 【问题描述】:

我有一个训练有素的决策树。当我输入一个特征向量来预测时,我想知道它是从哪个决策路径预测的,或者新特征落在树的哪个叶子下。

我正在使用 python 的 Sklearn 的决策树实现。

【问题讨论】:

我觉得需要用到DecisionTree对象的decision_path(X, check_input=True)方法 【参考方案1】:

有一种方法可以使用类的decision_path 方法访问树中的决策路径。

示例

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris 
import numpy as np

data = load_iris()

x = data.data
y = data.target

clf = RandomForestClassifier()

clf.fit(x,y)

clf.decision_path(x)

结果:

(<150x140 sparse matrix of type '<type 'numpy.int64'>'
with 5406 stored elements in Compressed Sparse Row format>, array([  0,  13,  
26,  41,  54,  71,  86,  97, 106, 119, 140]))

【讨论】:

以上是关于我如何从决策树中预测 x_train 的位置获取叶子的节点号?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习之决策树算法

为决策树中的每个数据点找到对应的叶节点(scikit-learn)

数据挖掘10大算法及详解

提取规则以预测决策树中的子节点或概率分数

关于决策树的预测

如何在决策树中使用python调用每个类的概率值