Python 从DecisionTreeClassifier获取单个数值变量的拆分点

Python 从DecisionTreeClassifier获取单个数值变量的拆分点,python,scikit-learn,decision-tree,Python,Scikit Learn,Decision Tree,我试图从基于单个变量创建的决策树中获取拆分。以下是获得劈开的正确和安全的方法吗 from sklearn.tree import DecisionTreeClassifier import numpy as np x = np.array([1,2,3,4,5,6,7]) y = np.array([1,0,0,1,1,0,1]) x = x.reshape(7, -1) clf = DecisionTreeClassifier() clf.fit(x, y) # My splits np.

我试图从基于单个变量创建的决策树中获取拆分。以下是获得劈开的正确和安全的方法吗

from sklearn.tree import DecisionTreeClassifier
import numpy as np
x = np.array([1,2,3,4,5,6,7])
y = np.array([1,0,0,1,1,0,1])
x = x.reshape(7, -1)

clf = DecisionTreeClassifier()
clf.fit(x, y)

# My splits
np.sort(clf.tree_.threshold[clf.tree_.feature == 0])

我在clf.tree_uu.fature中只看到了0和-2,我的理解是-2表示未定义的tree_u,而其他点将是具有某个已定义阈值的叶子。

您的理解是正确的,可以获得拆分,但您有重新设置的顺序。 -2表示叶节点,从中可以看到,而其他节点是内部节点。但是,这种方法存在一个问题,即您不能简单地重新构造顺序,或者如何将这些拆分放置在树的最终结构中

看一看,这是获得精确拆分和节点结构的更彻底的方法

参考资料