如何在Python中可视化回归树

2024-04-26 17:52:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望看到使用scikit learn中的任何集成方法(gradientboosting regressor、random forest regressor、bagging regressor)构建的回归树。 I've looked at this question接近,this question 它处理分类器树。但这些问题需要“树”方法,而SKLearn中的回归模型不具备这种方法。

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

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


Tags: 方法版本分类器verandomscikitthislearn
2条回答

经过多次搜索,我发现Turi提供的软件可以对a回归树进行建模,而不必与a决策树混淆。 Hope this helps

就其价值而言,回归树如下所示: enter image description here

决策/分类器树如下所示: enter image description here

尽管它们看起来是一样的,但是创建它所需的属性是tree_,它只对classifiers可用,而不是regressors

正如我所评论的,分类和回归决策树图之间没有函数差异。改编docs中的回归玩具示例:

from sklearn import tree
X = [[0, 0], [2, 2]]
y = [0.5, 2.5]
clf = tree.DecisionTreeRegressor()
clf = clf.fit(X, y)

然后,类似地,分类docs中关于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到链接问题中的relevant answer),结果如下:

enter image description here

你自己的答案,也就是一直安装graphlab只是为了可视化,听起来有点过头了。。。

最后一点:不要被树布局的表面差异所欺骗,树布局只反映了各个可视化包的设计选择;您绘制的回归树(不可否认,它看起来不像一个)在结构上与从文档中提取的分类相似-简单地想象一下一个自上而下的树,顶部是odor节点,后面是绿色节点,最后是蓝色和橙色节点(将“yes/no”替换为“True/False”)。。。

相关问题 更多 >