[英]How to visualize a Regression Tree in Python
正如我所评论的,分类和回归决策树图之间没有功能差异。 改编文档中的回归玩具示例:
from sklearn import tree
X = [[0, 0], [2, 2]]
y = [0.5, 2.5]
clf = tree.DecisionTreeRegressor()
clf = clf.fit(X, y)
然后,类似地,分类文档中有关graphviz
的一些代码:
import graphviz
dot_data = tree.export_graphviz(clf, out_file='tree.dot')
我们最终得到一个文件tree.dot
,看起来像这样:
digraph Tree {
node [shape=box] ;
0 [label="X[0] <= 1.0\nmse = 1.0\nsamples = 2\nvalue = 1.5"] ;
1 [label="mse = 0.0\nsamples = 1\nvalue = 0.5"] ;
0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;
2 [label="mse = 0.0\nsamples = 1\nvalue = 2.5"] ;
0 -> 2 [labeldistance=2.5, labelangle=-45, headlabel="False"] ;
}
现在,您可以继续将其可视化,如文档中所示 - 但如果由于某种原因您无法呈现 Graphviz 对象,您可以使用方便的服务WebGraphviz (+1 链接问题中的相关答案); 结果如下所示:
您自己的答案,即为了可视化而一路安装graphlab
,听起来有点矫枉过正......
最后一点:不要被树布局的表面差异所欺骗,这仅反映了各个可视化包的设计选择; 您绘制的回归树(诚然,它看起来不太像树)在结构上类似于从文档中获取的分类 - 只需想象一个自上而下的树,您的odor
节点位于顶部,然后是您的绿色节点并终止到您的蓝色和橙色节点(并将“是/否”替换为“真/假”)...
DTR 将为所有值创建一个分区级别
检查图表 -点击这里
from sklearn.tree import DecisionTreeRegressor
#Getting X and y variable
X = df.iloc[:,1:2].values
y =df.iloc[:,2].values
#Creating a model object and fiting the data
reg = DecisionTreeRegressor(random_state=0)
reg.fit(X,y)
# Visualising the Decision Tree Regression results (higher resolution)
X_grid = np.arange(min(X), max(X), 0.01)
X_grid = X_grid.reshape((len(X_grid), 1))
plt.scatter(X, y, color = 'red')
plt.plot(X_grid, reg.predict(X_grid), color = 'blue')
plt.title('Truth or Bluff (Decision Tree Regression)')
plt.xlabel('Position level')
plt.ylabel('Salary')
plt.show()
一个简单的文本模式解决方案:
from sklearn import tree
print(tree.export_text(clf_model))
典型结果:
|--- feature_3 <= 0.46
| |--- feature_0 <= 0.50
| | |--- feature_7 <= 0.50
| | | |--- feature_5 <= 0.78
| | | | |--- value: [3288.64]
etc...
使用clf_model.feature_names_in_
获取特征名称
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.