正如我所评论的,分类和回归决策树图之间没有功能差异。改编回归玩具示例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 到相关答案在链接的问题中);结果如下:
![enter image description here](https://i.stack.imgur.com/hL0Kw.png)
你自己的答案,即一路安装graphlab
仅仅为了可视化,听起来有点矫枉过正......
最后一点:不要被树布局的表面差异所欺骗,它们仅反映了相应可视化包的设计选择;您绘制的回归树(不可否认,它看起来不太像tree)在结构上类似于从文档中获取的分类 - 简单地想象一棵自上而下的树,您的odor
顶部的节点,然后是绿色节点,最后是蓝色和橙色节点(并将“是/否”替换为“真/假”)...