Python3.5在jupyter中使用graphviz画决策树(包括graphviz |
您所在的位置:网站首页 › Python画决策树 › Python3.5在jupyter中使用graphviz画决策树(包括graphviz |
异常1:ExecutableNotFound: failed to execute [‘dot’, ‘-Tsvg’], make sure the Graphviz executables are on your systems 异常2:CalledProcessError: Command '['dot', '-Tsvg']' returned non-zero exit status 1. [stderr: b"Error: : syntax error in line 1 near 'None'\r\n"] 是否在使用graphviz遇上这两个问题?恭喜你,遇上才哥不迷路。 首先异常1的原因是只安装了Python的graphviz第三方接口模块并没有安装graphviz画图软件 异常2的原因主要为安装的graphviz软件不兼容当前的Python解释器或当前的graphviz第三个接口模块,最好的解决方法是换一个低版本的graphviz软件 网上介绍异常二的另外一个原因是没有在tree.export_graphviz中添加out_file=None参数,(我个人测试是没有问题的,没有办法的时候可以试一下(如上白话文介绍没看懂的看下面代码)) 今天想画一下决策树,结果发现graphviz不仅仅是安装一下模块这么简单,首先,graphviz是一个使用dot语言的画图编辑器,当然也可以执行dot文件。于是要想画决策树可以有多种方法。 1、使用Python生成dot文件后,通过graphviz的gvedit.exe可以图形化界面操作打开dot文件,然后就可以生成决策树图形 2、可以通过python的第三方模块,graphviz接口调用本地安装的graphviz软件,直接生成决策树图形 下面我们就来介绍一下如何在Python中使用graphviz画一颗决策树:(在网上看了许多博客都没有找到一个完整的介绍,失望!!!) 环境: 系统:win7 Python解释器版本:Python3.5,(Python解释器向下兼容,3.5以上均可) 编辑环境:jupyter notebook,(在pycharm中运行后生成的是pdf文件,中文编码问题需要自己解决) graphviz版本:graphviz-2.38.msi,(实测现在官网发布的2.44.1安装后在Python3.5中运行时总会遇到CalledProcessError异常,所有建议通过graphviz-2.38.msi安装) 以下提供graphviz-2.38安装包和中文教程 链接:https://pan.baidu.com/s/1y8-Owj9UiwrWcyJ7VwY_4A 提取码:q6z0 1、首先我们需要安装graphviz-2.38软件: a.下载安装包后,傻瓜式安装,记住安装路径即可 b.安装完成后,添加环境变量:(注意路径为自己安装路径下的bin目录) c.测试:(在cmd命名窗口输入dot -version)显示窗口如下,恭喜安装成功 安装完成后我们可以使用图形化界面来打开dot文件或者使用dot语言编写图形: 2、然后我们需要安装graphviz第三方模块: 命令:pip install graphviz -i https://pypi.tuna.tsinghua.edu.cn/simple(这里网上各种介绍说安装python-graphviz或者是pygraphviz模块,但个人实测只能安装graphviz,其他两个模块安装报错) 安装完成后即可在Python中调用画决策树 from sklearn import tree from sklearn.datasets import load_wine from sklearn.model_selection import train_test_split wine = load_wine() #区分数据集和测试集 Xtrain,Xtest,Ytrain,Ytest = train_test_split(wine.data,wine.target,test_size=0.3) clf = tree.DecisionTreeClassifier(criterion="entropy") clf = clf.fit(Xtrain,Ytrain) score = clf.score(Xtest,Ytest) feature_name = ['酒精','苹果酸','灰','灰的碱性','镁','总酚','类黄酮','非黄烷类酚类','花青素','颜色强度','色调','稀释葡萄酒','脯氨酸'] import graphviz #输出生成的决策树 dot_data = tree.export_graphviz(clf ,feature_names = feature_name ,class_names = ["琴酒","雪莉","贝尔摩德"] ,filled=True ,rounded=True ,out_file=None #---->(异常二的解决方法二) ,special_characters="utf-8" ) graph = graphviz.Source(dot_data) graph.view()
切记重启一下开启jupyter notebook编辑页面的cmd窗口。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |