在一些算法学习中,例如决策树,需要画图进行可视化,增加对算法流程了解。在这种场景,一般会用到 Graphviz 工具。下面简单说明下 Graphviz 安装流程。

Graphviz 简单介绍

Graphviz 布局程序以简单的文本语言获取图形描述,并以有用的格式制作图表,例如用于网页的图像和SVG;PDF或Postscript包含在其他文档中;或在交互式图形浏览器中显示。Graphviz具有用于具体图表的许多有用功能,例如颜色,字体,表格节点布局,线型,超链接和自定义形状的选项。

Graphviz官网:http://www.graphviz.org/

Graphviz是开源的图形可视化软件。图形可视化是一种将结构信息表示为抽象图形和网络图的方式。它在网络,生物信息学,软件工程,数据库和网页设计,机器学习以及其他技术领域的可视界面中具有重要的应用。

Homebrew 简单介绍

Homebrew 是一款 Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用关心各种依赖和文件路径的情况,十分方便快捷。

在 Mac 上安装 Graphviz 需要使用 Homebrew 安装。

Homebrew官网:https://brew.sh/

下面说下具体安装流程。

1. 打开终端,安装homebrew

ruby -e "$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/master/install)"](https://raw.githubusercontent.com/Homebrew/install/master/install)%22)

2. 使用 homebrew 安装 Graphviz

brew install graphviz

3. 在Python 中安装 Graphviz 库(Python 3 以上环境)

pip3 install graphviz

4. 安装 pydotplus 库。pydot 模块提供了一个完整的界面,用于在图表语言中的计算机处理和过程图表。

pip3 install pydotplus

安装完成,案例测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import graphviz
import sklearn.datasets as datasets
import pandas as pd
iris=datasets.load_iris()
df=pd.DataFrame(iris.data, columns=iris.feature_names)
y=iris.target
from sklearn.tree import DecisionTreeClassifier
dtree=DecisionTreeClassifier()
dtree.fit(df,y)
from sklearn.externals.six import StringIO
from IPython.display import Image
from sklearn.tree import export_graphviz
import pydotplus
dot_data=StringIO()
export_graphviz(dtree,out_file=dot_data,filled=True, rounded=True, special_characters=True)
graph=pydotplus.graph_from_dot_data(dot_data.getvalue())
Image(graph.create_png())
1
2
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/sklearn/externals/six.py:28: FutureWarning: The module is deprecated in version 0.21 and will be removed in version 0.23 since we've dropped support for Python 2.7. Please rely on the official version of six (https://pypi.org/project/six/).
warnings.warn("The module is deprecated in version 0.21 and will be removed "

image.png