首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中可视化回归树

如何在Python中可视化回归树
EN

Stack Overflow用户
提问于 2017-11-09 23:42:20
回答 4查看 14.9K关注 0票数 2

我希望可视化一个回归树构建使用任何集成方法在科学学习(梯度提升回归,随机森林回归,打包回归)。我看过这个问题靠近,这个问题处理分类器树。但是,这些问题需要“树”方法,这是SKLearn中的回归模型所不能使用的。

但它似乎没有产生任何结果。我遇到了问题,因为这些树的回归版本没有.tree方法(该方法只存在于分类版本)。我想要一个类似于的输出,但是基于一个sci工具包,学习树。

我已经探索了与对象相关的方法,但无法给出答案。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-11-14 19:06:04

正如我所评论的,在分类和回归决策树图之间没有功能上的区别。从文档中调整回归玩具示例

代码语言:javascript
复制
from sklearn import tree
X = [[0, 0], [2, 2]]
y = [0.5, 2.5]
clf = tree.DecisionTreeRegressor()
clf = clf.fit(X, y)

然后,类似地,分类文档中有关graphviz的一些代码

代码语言:javascript
复制
import graphviz 
dot_data = tree.export_graphviz(clf, out_file='tree.dot') 

我们最后得到一个文件tree.dot,如下所示:

代码语言:javascript
复制
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节点,然后是绿色节点并终止到您的蓝色和橙色节点(并将"yes/no“替换为”True/False“).

票数 9
EN

Stack Overflow用户

发布于 2017-11-14 18:24:48

经过多次搜索,我发现Turi提供的软件可以建立回归树模型,而不是与决策树混淆。希望这能有所帮助

就其价值而言,回归树如下所示:

虽然决策/分类器树如下所示:

因此,它们看起来是一样的,创建它所需的属性是tree_,它只对分类器可用,而不是回归者

票数 1
EN

Stack Overflow用户

发布于 2022-02-05 06:18:44

DTR将为所有值创建分区级别。

检查图- 单击此处

代码语言:javascript
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47213483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档