我试图从基于单个变量创建的决策树中拆分。以下是正确安全的分割方法吗?
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])
我在0
中仅看到-2
和clf.tree_.fature
,我的理解是-2
代表TREE_UNDEFINED
(请参阅here),而另一个点将是具有定义的阈值的叶子。
答案 0 :(得分:1)
您的理解对获得拆分是正确的,但您的订单受到了尊敬。
-2
代表叶子节点,如您从this code section所见,而其他节点是内部节点。但是,此方法存在一个问题,即您不能简单地重新构建顺序或将这些拆分放置在树的最终结构中。
看看this official example,这是获取精确的拆分和节点结构的更彻底的方法。
参考