用graphviz画树状图(pdf、png)

这篇博客介绍了如何在Python中利用Graphviz库来可视化决策树。首先,从官网下载并安装Graphviz,然后配置环境变量。接着,利用sklearn库构建和训练决策树模型,并通过export_graphviz导出dot文件。最后,通过cmd或Python代码生成PDF和PNG图像。示例代码展示了具体步骤。
摘要由CSDN通过智能技术生成

第一步:去官网下载适合自己电脑的graphviz 的exe文件Download | Graphviz  https://www.graphviz.org/download/

第二布:调整环境变量

 进入Path,并新建graphviz的路径   注意:在路径后加 \bin  (如下图)

点击确定。并在cmd中输入 dot -version

若出现这种情况,即path设置完成

 第三步:重启编译器:spyder,pycharm等等

第四步:生成doc文件

#1)导入相关库,准备训练数据集和测试数据集
from sklearn import datasets
iris = datasets.load_iris()   # 导入函数
X = iris.data
y = iris.target

#2-1)建立决策树模型。调整各项参数,观察和比较分类结果,报告分类性能
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.3)

from sklearn.tree import DecisionTreeClassifier
dtc = DecisionTreeClassifier() # 创建决策树
dtc.fit(X_train,y_train)



'''生成决策树dot文件'''
from sklearn.tree import export_graphviz
export_graphviz(dtc,out_file='C:/Users/Lenovo/Desktop/tree1.dot')

下面是我的doc文件内容:

digraph Tree {

node [shape=box] ;

0 [label="X[3] <= 0.75\ngini = 0.664\nsamples = 105\nvalue = [37, 37, 31]"] ;

1 [label="gini = 0.0\nsamples = 37\nvalue = [37, 0, 0]"] ;

0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;

2 [label="X[2] <= 4.95\ngini = 0.496\nsamples = 68\nvalue = [0, 37, 31]"] ;

0 -> 2 [labeldistance=2.5, labelangle=-45, headlabel="False"] ;

3 [label="X[3] <= 1.65\ngini = 0.102\nsamples = 37\nvalue = [0, 35, 2]"] ;

2 -> 3 ;

4 [label="gini = 0.0\nsamples = 34\nvalue = [0, 34, 0]"] ;

3 -> 4 ;

5 [label="X[1] <= 3.1\ngini = 0.444\nsamples = 3\nvalue = [0, 1, 2]"] ;

3 -> 5 ;

6 [label="gini = 0.0\nsamples = 2\nvalue = [0, 0, 2]"] ;

5 -> 6 ;

7 [label="gini = 0.0\nsamples = 1\nvalue = [0, 1, 0]"] ;

5 -> 7 ;

8 [label="X[3] <= 1.75\ngini = 0.121\nsamples = 31\nvalue = [0, 2, 29]"] ;

2 -> 8 ;

9 [label="X[3] <= 1.55\ngini = 0.444\nsamples = 6\nvalue = [0, 2, 4]"] ;

8 -> 9 ;

10 [label="gini = 0.0\nsamples = 3\nvalue = [0, 0, 3]"] ;

9 -> 10 ;

11 [label="X[2] <= 5.45\ngini = 0.444\nsamples = 3\nvalue = [0, 2, 1]"] ;

9 -> 11 ;

12 [label="gini = 0.0\nsamples = 2\nvalue = [0, 2, 0]"] ;

11 -> 12 ;

13 [label="gini = 0.0\nsamples = 1\nvalue = [0, 0, 1]"] ;

11 -> 13 ;

14 [label="gini = 0.0\nsamples = 25\nvalue = [0, 0, 25]"] ;

8 -> 14 ;

}

第五步,也是最后一步:

在cmd 中 输入:

  dot -Tpdf C:\Users\Lenovo\Desktop\tree1.dot -o C:\Users\Lenovo\Desktop\tree1.pdf

这里结构具体是这样:    dot -Tpdf __文件路径__ -o __生成(文件路径)名字___

然后就可以打开pdf了

若要生成 png,则只需将 -Tpdf  改为 -Tpng 就行了

下面是我生成的pdf

这样:iris的树状图我们就有了!

最近新发现:

不在cmd,在python的prompt里也可以运行这个程序

这样一来,只要在文件内加如以下代码就可以了

import os
doc_path = 'C:/Users/Lenovo/Desktop/tree1.dot'
pdf_path = 'C:/Users/Lenovo/Desktop/tree2.pdf'
png_path = 'C:/Users/Lenovo/Desktop/tree2.png'

try:
    os.system('dot -Tpdf '+doc_path+' -o '+pdf_path)  # pdf
    os.system('dot -Tpng '+doc_path+' -o '+png_path)  # png
    print('Successful')
except:
    print('Failed Somehow')

  • 24
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值