1.安装graphviz。

graphviz本身是一个绘图工具软件,下载地址在:http://www.graphviz.org/。如果你是linux,可以用apt-get或者yum的方法安装。如果是windows,就在官网下载msi文件安装。无论是linux还是windows,装完后都要设置环境变量,将graphviz的bin目录加到PATH,比如我是windows,将C:/Program Files (x86)/Graphviz2.38/bin/加入了PATH

2.安装python插件graphviz。

python上有支持graphviz使用 的import graphviz

3.安装python插件pydotplus。

import pydotplus

from IPython.display import Image

这样环境就搭好了,有时候python会很笨,仍然找不到graphviz,这时,可以在代码里面加入这一行:

os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

注意后面的路劲是你自己的graphviz的bin目录。

4、绘图

#用决策树建模

clf = tree.DecisionTreeClassifier() #默认的选取最优节点的标准是基尼系数,若想使用信息增益则为entropy
clf = clf.fit(Xtrain, Ytrain)
score = clf.score(Xtest, Ytest) #返回预测的准确度
print(str(clf))
print(score)

#用graphviz会画得决策树(没有解决中文乱码的问题???十分苦恼)

输出PDF至项目文件夹:

import pydotplus
import os
from sklearn.externals.six import StringIO
os.environ["PATH"] += os.pathsep + 'E:\graphviz\bin'
dot_data = StringIO()
tree.export_graphviz(clf #模型
,feature_names= feature_name #tez
,class_names=["琴酒","雪莉","贝尔摩德"] #类别名
,filled=True #由颜色标识不纯度
,rounded=True #树节点为圆角矩形
,out_file=dot_data
)
graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("wine.pdf") #https://blog.csdn.net/chai_zheng/article/details/78226556

生成tree.dot文件,再用graphviz生成:

#生成tree.dot文件
with open("tree.dot", 'w') as f:
f = tree.export_graphviz(clf
, feature_names = feature_name # tez
, class_names = ["琴酒", "雪莉", "贝尔摩德"] # 类别名
, filled = True # 由颜色标识不纯度
, rounded = True # 树节点为圆角矩形
,out_file=f)

a)通过graphviz的exe程序导入dot文件生成相对应的png或者pdf文件

b)通过命令行dot -Tpdf tree.dot -o output.pdf,dot -Tpng tree.dot -o output.png将dot文件生成png或者pdf文件

用graphviz可视化决策树的更多相关文章

  1. [决策树]西瓜数据graphviz可视化实现

    [决策树]西瓜数据graphviz可视化实现 一.问题描述: 使用西瓜数据集构建决策树,并将构建的决策树进行可视化操作. 二.问题简析: 首先我们简单的介绍一下什么是决策树.决策树是广泛用于分类和回归 ...

  2. 利用Graphviz 可视化GO 数据库

    GO是一个同源蛋白的数据库,按照三大类别BP(生物学过程), MF(分子功能), CC(细胞组分) 对基因的产物-蛋白质进行了分类: 在GO数据库中,本质上是一个有向无环图的数据结构,在三大类别之下, ...

  3. 用 Graphviz 可视化函数调用

    http://www.ibm.com/developerworks/cn/linux/l-graphvis/

  4. Sklearn----使用决策树预测隐形眼镜类型

    import pandas as pd import pydotplus from sklearn.externals.six import StringIO #LabelEncoder:将字符串转换 ...

  5. 用 Graphviz+pvtrace 可视化函数调用

    最近在想怎么把一个程序的函数调用关系快速的用流程图的方式画出来,之后看到了这个一篇文章“用 Graphviz 可视化函数调用”(http://www.ibm.com/developerworks/cn ...

  6. 机器学习(Machine Learning)算法总结-决策树

    一.机器学习基本概念总结 分类(classification):目标标记为类别型的数据(离散型数据)回归(regression):目标标记为连续型数据 有监督学习(supervised learnin ...

  7. 机器学习算法实践:决策树 (Decision Tree)(转载)

    前言 最近打算系统学习下机器学习的基础算法,避免眼高手低,决定把常用的机器学习基础算法都实现一遍以便加深印象.本文为这系列博客的第一篇,关于决策树(Decision Tree)的算法实现,文中我将对决 ...

  8. 通俗地说决策树算法(三)sklearn决策树实战

    前情提要 通俗地说决策树算法(一)基础概念介绍 通俗地说决策树算法(二)实例解析 上面两篇介绍了那么多决策树的知识,现在也是时候来实践一下了.Python有一个著名的机器学习框架,叫sklearn.我 ...

  9. 理解CART决策树

    CART算法 原理 CART全称为Classification and Regression Tree. 回归树 相比ID3,CART遍历所有的特征和特征值,然后使用二元切分法划分数据子集,也就是每个 ...

随机推荐

  1. 微软商店打不开的教程(错误代码0x80131500)

    1 打开win+R 输入`inetcpl.cpl` 2 点击高级 3  勾选上`使用TLS 1.2`或者点击还原默认设置就可以啦 4 然后就可以打开啦

  2. 字符编码和python文件操作

    字符编码和文件操作 目录 字符编码和文件操作 1. 字符编码 1.1 什么是字符编码 1.2 字符编码的发展史 1.2.1 ASCII码 1.2.2 各国编码 1.2.3 Unicode 1.3 字符 ...

  3. [EntityFramework]记录Linq中如何比较数据库中Timestamp列的方法(如大于0x00000000000007D1的记录)

    Timestamp对于EF实体的类型是byte[] class Program { static void Main(string[] args) { using (var context = new ...

  4. [hdu7082]Pty loves lcm

    先将问题差分,即仅考虑上限$R$(和$L-1$) 注意到$f(x,y)$增长是较快的,对其分类讨论: 1.若$y\ge x+2$,此时满足$f(x,y)\le 10^{18}$的$(x,y)$只有约$ ...

  5. linux新增定时脚本

    crontab -e 然后新增: 0 * * * * sh /usr/local/redis/copy/redis_rdb_copy_hourly.sh 控制台回显"crontab:inst ...

  6. git添加新工程

    git init git remote add origin 码云路径 git pull origin master 代码拉本地后 git add . git commit -m '新添加的文件内容描 ...

  7. IDEA远程快速部署SpringBoot项目到Docker环境

    一:基础准备 1.首先在linux服务器安装Docker环境,具体安装步骤及Docker使用参考官网或网络资料(这里重点是快速部署项目到Docker环境) 2.配置Docker远程连接端口 1.vim ...

  8. 使用Shiro出现404的处理

    在使用Shiro的@RequiresXXX的注解时,可能会导致页面访问出现404错误,解决方法为在ShiroConfig类中添加如下的配置: @Beanpublic DefaultAdvisorAut ...

  9. Codeforces 505E - Mr. Kitayuta vs. Bamboos(二分+堆)

    题面传送门 首先很显然的一点是,看到类似于"最大值最小"的字眼就考虑二分答案 \(x\)(这点我倒是想到了) 然鹅之后就不会做了/wq/wq/wq 注意到此题正着处理不太方便,故考 ...

  10. EXCEL-对筛选出(单独手动隐藏行还是在统计范围内)的表格数据进行统计

    =SUBTOTAL(3,A1:A5)  #计算筛选出的表格中A1:A5中有几个值. =SUBTOTAL(3,I71:I21447)  ,在I71:I21447之间计数,会自动略去没有筛选上的隐藏单元格 ...