决策树可视化-python

决策树相较于其他机器学习模型具有较好的解释性,也容易将其结果进行可视化展示,python中sklearn.tree的export_graphviz函数可以将决策树结果以doc或dot文件的形式输出,然后将决策树结果可视化,下面举个简单例子。

1、创建数据集

from sklearn.datasets import make_classification
X, y = make_classification(n_samples=10000, 
                           n_features=10, 
                           n_informative=5, 
                           n_redundant=0, 
                           n_repeated=0, 
                           n_classes=2, 
                           weights=[0.8, 0.2], 
                           flip_y=0.01, 
                           random_state=1234)

2、训练决策树

from sklearn.tree import DecisionTreeClassifier
Dtree = DecisionTreeClassifier(criterion='gini',
                             max_depth=3, 
                             min_samples_split=int(0.03 * X.shape[0]),
                             min_samples_leaf=int(0.01 * X.shape[0]), 
                             random_state=0)
Dtree.fit(X, y)

3、输出决策树结果文件

from sklearn.tree import export_graphviz
export_graphviz(Dtree,
                out_file='D:\\study\\Dtree.dot')

在'D:\study'中生成了'Dtree.dot'文件

4、决策树可视化

首先安装Graphviz(下载地址:http://www.graphviz.org/),安装好后,设置环境变量:在系统变量的PATH中添加Graphviz的bin目录路径,如我的安装路径是"C:\Program Files (x86)\Graphviz2.38\bin":

验证一下环境变量是否设置成功:在cmd中输入dot -version

然后在'D:\study'目录下,操作“Shift键+右击鼠标”打开Windows Powershell窗口,并输入"dot -Tpng Dtree.dot -o Dtree.png"命令,点击回车,即生成了决策树可视化图:

决策树如下

除了生成png格式图片,还可生成jpg、pdf等其他格式文件,只需将命令改为"dot -Tjpg Dtree.dot -o Dtree.jpg"、"dot -Tpdf Dtree.dot -o Dtree.pdf"即可。

本文分享自微信公众号 - 大数据建模的一点一滴(bigdatamodeling),作者:小石头

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 模型评估指标

    本文主要介绍python已有模块中模型评估指标的使用,主要有sklearn.metrics、scikitplot.skplt等方法,并且重点展示分类模型的常用的...

    小石头
  • Python | 排序

    原列表list上进行排序,没有返回值。参数key和reverse和sorted()函数中的参数用法一样。

    小石头
  • 论文翻译|Practical Lessons from Predicting Clicks on Ads at Facebook

    在线广告允许广告主只对可测量的用户响应出价和付费,例如广告点击。因此,点击预测系统是大多数在线广告系统的核心。Facebook有超过7.5亿的日活跃用户和超过...

    小石头
  • 独家 | 一文为你解析神经网络(附实例、公式)

    原文标题:Introduction To Neural Networks 作者:Ben Gorman 翻译:申利彬 校对:和中华 本文长度为4000字,建议阅读...

    数据派THU
  • 高性能网站架构方案(一) ——MySQL提升

    高性能网站架构方案(一)——MySQL提升 原创内容,转载请注明来源,谢谢) 一、Mysql响应速度提升——HandlerSocket 1、概述 ...

    用户1327360
  • 网络配置三种模式对比(桥接模式,主机模式,网络地址转换)

        VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。安装好虚拟机以后,在网络连...

    wuweixiang
  • 程序员修神之路--提高网站的吞吐量?

    吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。

    心莱科技雪雁
  • [PLM专题] 十分钟了解文本分类通用训练技巧

    欢迎大家来到预训练语言模型的专题系列分享,本篇推送是该专题系列的第三篇。在前两篇推送[萌芽时代],[风起云涌]中,我们分享了该领域的奠基文章以及声名鹊起却生不逢...

    朴素人工智能
  • 深入Go的错误处理机制(一)使用

    程序运行过程中不可避免的发生各种错误,要想让自己的程序保持较高的健壮性,那么异常,错误处理是需要考虑周全的,每个编程语言提供了一套自己的异常错误处理机制,在Go...

    阿伟
  • Mybatis plus性能分析插件引起的 Full table operation is prohibited.

    今天在执行一个 update 语句的时候,发现一直报Full table operation is prohibited.

    haoming1100

扫码关注云+社区

领取腾讯云代金券