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. Python 爬取 猫眼

    1. import requests import re import pymongo MONGO_URL='localhost'#建立连接 MONGO_DB='Maoyan'#创建数据库 clien ...

  2. html+css第三篇

    css reset 原则: 但凡是浏览默认的样式,都不要使用. body,dl,dd,p,h1,h2,h3,h4,h5,h6{margin:0;font-size:12px;} ol,ul{margi ...

  3. 洛谷 P3343 - [ZJOI2015]地震后的幻想乡(朴素状压 DP/状压 DP+微积分)

    题面传送门 鸽子 tzc 竟然来补题解了,奇迹奇迹( 神仙题 %%%%%%%%%%%% 解法 1: 首先一件很明显的事情是这个最小值可以通过类似 Kruskal 求最小生成树的方法求得.我们将所有边按 ...

  4. mVISTA 多序列比对叶绿体基因组

    mVISTA可对2个或者多个DNA序列进行比较,可以对比对结果进行可视化. 详情请大力戳这里 0 输入文件说明 mVISTA 需要输入的文件有如下几类 必须文件 邮箱 fasta格式序列文件(或者GE ...

  5. AnnotationHub, clusterProfiler 进行GO,KEGG注释

    ️ AnnotationHub 目前最新的工具包叫做AnnotationHub,顾名思义,就是注释信息的中装站.通过它,能找到了几乎所有的注释资源.如果没有,你还可以根据已有的数据用它提供的函数进行构 ...

  6. python20判断变量是否存在

    python中检测某个变量是否有定义 第一种方法使用内置函数locals(): locals():获取已定义对象字典 'testvar' in locals().keys() 第二种方法使用内置函数d ...

  7. C语言计算fastq文件GC含量2

    改进了一下,利用zlib可以读取gz格式的压缩文件,也可以直接计算非压缩格式 #include <stdio.h> #include <stdlib.h> #include & ...

  8. UE4打包启动失败:RunUAT.bat ERROR: AutomationTool failed to compile.

    打包配置正常的情况下,出现下面Log: RunUAT.bat ERROR: AutomationTool failed to compile. 基本上,可以先排查下任务管理器中是不是有UE4Edito ...

  9. 《Redis设计与实现》知识点目录

    Redis设计与实现 第一部分 数据结构与对象 第二章 简单动态字符串 p8 简单动态字符串SDS 2.1 SDS的定义 p9 每个sds.h/sdshdr结构表示一个SDS值 2.2 SDS与C字符 ...

  10. Go 性能提升tips--边界检查

    1. 什么是边界检查? 边界检查,英文名 Bounds Check Elimination,简称为 BCE.它是 Go 语言中防止数组.切片越界而导致内存不安全的检查手段.如果检查下标已经越界了,就会 ...