可视化sklearn决策树的结构

  统计/机器学习 监督式学习 数据可视化 Python    浏览次数: 1989
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模块里的DecisionTreeClassifier为什么每次结果不同(数据相同的情况下)   1回答

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

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

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

sklearn里怎么获得adaboost中每棵树的权重?   1回答

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

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

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

决策树、随机森林中的多重共线性问题   3回答

决策树剪枝有什么策略或者注意事项?   2回答

如果采用非等权重的方法集成一个随机森林,会表现得更好嘛?   1回答

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



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

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

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

我们谢绝答非所问。

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

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