可视化sklearn决策树的结构

  统计/机器学习 监督式学习 数据可视化 Python    浏览次数: 1540
5

我用sklearn构造了决策树模型后,可以有办法得到这个决策树的结构?也就是if-else的判断的规则。

Thx!


 

山中人   2017-10-05 13:08



   2个回答 
8

用graphviz可以直接把树在jupyter notebook里显示出来

import graphviz
from sklearn import tree
model = tree.DecisionTreeRegressor(max_depth=2)
model.fit(X, y)
dot_data = tree.export_graphviz(model, 
                                out_file=None, 
                                feature_names=X.columns,
                                filled=True, 
                                rounded=True,  
                                special_characters=True)  
graph = graphviz.Source(dot_data)
graph


SofaSofa数据科学社区 DS面经 问答 实战

sasa   2018-10-30 07:15

每个框颜色深浅是什么意思?表示每个节点内均值的高低吗? - 何立诚   2018-11-05 04:49
是的,表示均值,颜色越深,均值越大 - sasa   2018-11-08 18:14
6

需要通过调用tree.export_graphviz这个方法。

以sklearn自带的数据集iris为例

from sklearn.datasets import load_iris
from sklearn import tree

clf = tree.DecisionTreeClassifier()
iris = load_iris()
clf = clf.fit(iris.data, iris.target)
tree.export_graphviz(clf, out_file='trees.txt')

输出的trees.txt文件里有保存了你的决策树的判断规则。


如果你想把这个规则画出来的话,可以借用这个网站http://webgraphviz.com/,把上面的txt文件里的内容,复制过去就行了,可以得到类似下面的图。



SofaSofa数据科学社区 DS面经 问答 实战

数据痴汉   2017-10-15 10:58



  相关主题

sklearn里的RandomForestClassifier怎么选样本的数量   1回答

对sklearn的决策树进行剪枝   2回答

sklearn模块里的DecisionTreeClassifier为什么每次结果不同(数据相同的情况下)   1回答

sklearn随机森林设置每棵树的权重   2回答

python里实现一个简单的决策树   1回答

python sklean中的决策树是用的哪一种决策树算法?   2回答

随机森林中增加树的数量对于偏差和方差的影响   2回答

决策树可以做多元分类吗?   1回答

决策树算法ID3,C4.5和CART的特点、异同?   3回答

Gradient tree boosting和random forest (随机森林) 有什么区别和联系   1回答

决策树的深度和数据特征个数的关系   1回答

决策树怎么做增量学习或者online学习?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!