Graphviz环境配置及决策树案例演示

文章目录

  • 前言
  • 背景
  • 一、python环境安装
  • 二、Windows系统环境安装
    • 2.1 获取链接
    • 2.2 安装
  • 三、 验证配置成功与否
  • 四、小试牛刀
    • 4.1 小试牛刀_01
    • 4.2 小试牛刀_02
  • 五、参考文献

前言

问题:在使用决策树实现算法(ID3)过程中,得到模型结果,为了能够可视化展示,
解惑:故遇到了graphviz的问题。


配置:

1、python3.6
2、Windows环境

背景

画出数据网络的布局,使用graphviz能比较清楚的画出数据之间的关系。通过官网可以看到此软件能画的图是不是好多,好流弊。

一、python环境安装

这个没啥可说的,很简单,直接命令行下:pip install graphviz 即可。
在这里插入图片描述
要想验证一下也很简单:

from graphviz import Digraph

直接运行看是否报错即可。

二、Windows系统环境安装

2.1 获取链接

https://graphviz.gitlab.io/_pages/Download/Download_windows.html

Graphviz环境配置及决策树案例演示_第1张图片

2.2 安装

双击下载的的msi文件,然后选好路径,傻瓜式操作即可。
Graphviz环境配置及决策树案例演示_第2张图片
环境变量配置:找到安装grphviz的bin目录,然后在系统环境变量path中,进去新建配置。
Graphviz环境配置及决策树案例演示_第3张图片

三、 验证配置成功与否

Windows命令窗口下:dot -version
Graphviz环境配置及决策树案例演示_第4张图片

四、小试牛刀

4.1 小试牛刀_01

创建一个dot布局:first.dot脚本,内容如下:

digraph first2{
a;
b;
c;
d;
a->b;
b->d;
c->d;
}

然后在first.dot脚本目录下:cmd进入到命令窗口,执行:dot -Tpng first.dot -o first.png
Graphviz环境配置及决策树案例演示_第5张图片
生成的图片,可见:
Graphviz环境配置及决策树案例演示_第6张图片

4.2 小试牛刀_02

"""
用sklearn的求决策树的方法(ID3)求出决策树,再利用graphviz进行可视化
# 
dataset=[
    
    [1,0,0,1,0],
    [1,0,0,2,0],
    [1,1,0,2,1],
    [1,1,1,1,1],
    [1,0,0,1,0],
    [2,0,0,2,0],
    [2,0,0,2,0],
    [2,1,1,2,1],
    [2,0,1,3,1],
    [2,0,1,2,1],
    [3,0,1,3,1],
    [3,0,1,2,1],
    [3,1,0,3,1],
    [3,1,0,3,1],
    [3,0,0,1,0]
]
dataset
"""

# 2、读取特征值
X = [x[0:4] for x in dataset] #读取特征值
Y = [y[-1] for y in dataset] # 读取类别-Y值
# 3、使用sklearn的求决策树的方法求出决策树,再利用graphviz进行可视化
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz

# 设置特征
feature = ['年龄', '无工作', '无房子', '信贷情况']
# 分类结果
classname = ['借', '不借']
# https://www.cntofu.com/book/170/docs/11.md   ----------------中文说明文档
tree_clf = DecisionTreeClassifier(max_depth=4) # 训练的深度
tree_clf.fit(X,Y) #

from graphviz import Digraph
export_graphviz(tree_clf,out_file=("ID3.dot"), feature_names=feature,class_names=classname, rounded=True, filled=True)
import re
f = open('ID3.dot', 'r+',encoding='utf-8')
open('ID3_Tree_utf-8.dot', 'w', encoding='utf-8').write(re.sub(r'fontname=helvetica', 'fontname="Microsoft YaHei"', f.read()))
f.close()

代码运行之后,然后在源码目录下,执行:>dot -Tpng ID3_Tree_utf-8.dot -o ID3.png
边可查看生成的决策树:
Graphviz环境配置及决策树案例演示_第7张图片
说明:小试牛刀二的案例,具体出处是李航的统计学习方法的决策树章节。

五、参考文献

https://www.cnblogs.com/shuodehaoa/p/8667045.html

你可能感兴趣的:(机器学习)