Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >属实逼真,决策树可视化!

属实逼真,决策树可视化!

作者头像
统计学家
发布于 2022-02-21 00:12:44
发布于 2022-02-21 00:12:44
84400
代码可运行
举报
运行总次数:0
代码可运行

同学们好

决策树的可视化,我以为之前介绍的方法已经够惊艳了(决策树可视化,被惊艳到了!),没想到最近又发现了一个更惊艳的,而且更逼真,话不多说,先看效果图↓

直接绘制随机森林也不在话下

下面就向大家介绍一下这个神器 —— pybaobabdt

安装GraphViz

pybaobabdt依赖GraphViz,首先下载安装包

http://www.graphviz.org/download/

http://www.graphviz.org/download/

2、双击msi文件,然后一直选择next(默认安装路径为C:\Program Files (x86)\Graphviz2.38\),安装完成之后,会在windows开始菜单创建快捷信息。

3、配置环境变量:计算机→属性→高级系统设置→高级→环境变量→系统变量→path,在path中加入路径:

4、验证:在windows命令行界面,输入dot -version,然后按回车,如果显示如下图所示的graphviz相关版本信息,则安装配置成功。

安装pygraphviz和pybaobabdt

pip直接安装pygraphviz的话,大概率会报错,建议下载whl文件本地安装。

https://www.lfd.uci.edu/~gohlke/pythonlibs

pybaobabdt就简单了,直接pip install pybaobabdt 即可

pybaobabdt用法

pybaobabdt 用起来也简单到离谱,核心命令只有一个pybaobabdt.drawTree,下面是官方文档示例代码,建议在jupyter-notebook中运行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pybaobabdt
import pandas as pd
from scipy.io import arff
from sklearn.tree import DecisionTreeClassifier
from matplotlib.colors import LinearSegmentedColormap
from matplotlib.colors import ListedColormap
from colour import Color
import matplotlib.pyplot as plt
import numpy as np

data = arff.loadarff('vehicle.arff')
df   = pd.DataFrame(data[0])
y = list(df['class'])
features = list(df.columns)

                   
features.remove('class')
X = df.loc[:, features]

clf = DecisionTreeClassifier().fit(X, y)

ax = pybaobabdt.drawTree(clf, size=10, dpi=72, features=features, colormap='Spectral')

这个图怎么看呢?

不同的颜色对应不同的分类(target),每个分叉处都标记了分裂的条件,所以划分逻辑一目了然。树的深度也是工整的体现了出来。

树枝的直径也不是摆设,而是代表了样本的个数(比例),该划分条件下的样本越多,树干也就越粗。

你是发现最最底层的树枝太细太脆弱的时候,是不是应该考虑一下过拟合风险,比如需要调整一下最小样本数?

绘制随机森林

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pybaobabdt
import pandas as pd
from scipy.io import arff
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
data = arff.loadarff('vehicle.arff')

df = pd.DataFrame(data[0])
y = list(df['class'])
features = list(df.columns)
features.remove('class')
X = df.loc[:, features]

clf = RandomForestClassifier(n_estimators=20, n_jobs=-1, random_state=0)
clf.fit(X, y)
size = (15,15)
plt.rcParams['figure.figsize'] = size
fig = plt.figure(figsize=size, dpi=300)

for idx, tree in enumerate(clf.estimators_):
    ax1 = fig.add_subplot(5, 4, idx+1)
    pybaobabdt.drawTree(tree, model=clf, size=15, dpi=300, features=features, ax=ax1)
    
fig.savefig('random-forest.png', format='png', dpi=300, transparent=True)

怎么用,是不是很酷,赶紧去试试吧!

参考:https://mp.weixin.qq.com/s/uIazCL9SjNDguu59up5KjA

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
来自“非洲”的树可视化工具包
目前已经存在非常多可视化树模型的策略,此处我们给出另外一种最新的树模型可视化工具包--pybaobabdt,该工具包提供了可视化分析方法的双重示例。可以通过交互和可视化来增强机器学习方法。
炼丹笔记
2022/04/06
6870
来自“非洲”的树可视化工具包
决策树以及XGBoost 树分裂图的多种可视化工具盘点
如果要画出决策树图,一般需要该库,需要先下载: http://www.graphviz.org/download/
悟乙己
2022/11/30
2.2K0
决策树以及XGBoost 树分裂图的多种可视化工具盘点
基于决策树的红酒分类可视化
决策树Decision Tree是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规 则,并用树状图的结构来呈现这些规则,以解决分类和回归问题 。
皮大大
2021/03/02
1.5K0
kaggle实战-银行用户流失预测
近年来,不论是传统行业还是互联网行业,都面临着用户流失问题。一般在银行、电话服务公司、互联网公司、保险等公司,经常使用客户流失分析和客户流失率作为他们的关键性业务指标之一。
皮大大
2023/08/25
2K0
决策树以及XGBoost如何画出 树分裂图?
如果要画出决策树图,一般需要该库,需要先下载: http://www.graphviz.org/download/
悟乙己
2021/12/07
2.3K0
决策树以及XGBoost如何画出 树分裂图?
Python可视化分析笔记(数据源准备和简单可视化)
可视化是数据分析的重要一环,也是python比较擅长的工作,本笔记系列尽可能采用统一的数据源和基于matplotlib原生版本进行可视化。
python与大数据分析
2022/03/11
8770
Python可视化分析笔记(数据源准备和简单可视化)
数据分析入门系列教程-决策树实战
在学习了上一节决策树的原理之后,你有没有想动手实践下的冲动呢,今天我们就来用决策树进行项目实战。
周萝卜
2020/10/30
9150
数据分析入门系列教程-决策树实战
sklearn同时运行多个模型并进行可视化
参考:https://blog.csdn.net/qq_34106574/article/details/82016442
西西嘛呦
2020/08/26
9660
sklearn同时运行多个模型并进行可视化
机器学习测试笔记(13)——决策树与随机森林
在介绍决策树之前我们先来介绍下信息熵,信息熵是约翰·香农根据热力学第二定律,在 1948《通信的数学原理》一书中提出,主要思想是:一个问题不确定性越大,需要获取的信息就越多,信息熵就越大;一个问题不确定性越小,需要获取的信息就越少,信息熵就越小。比如“小张今天会不会在9:00之前到公司”的信息熵就比“小张今天会不会吃早饭”的信息熵要高,因为小张长久以来没有不吃早饭的习惯。
顾翔
2021/01/18
9450
强大的 Scikit-learn 可视化让模型说话
使用 utils.discovery.all_displays 查找可用的 API。
数据STUDIO
2024/05/10
2290
强大的 Scikit-learn 可视化让模型说话
厉害了,用Python绘制动态可视化图表,并保存成gif格式
有粉丝问道说“是不是可以将这些动态的可视化图表保存成gif图”,小编立马就回复了说后面会写一篇相关的文章来介绍如何进行保存gif格式的文件。那么我们就开始进入主题,来谈一下Python当中的gif模块。
用户6888863
2022/04/13
5760
厉害了,用Python绘制动态可视化图表,并保存成gif格式
TOP50 Python可视化经典案例下(附源码,建议收藏)
昨天行哥给大家统计了数据可视化前30张图表代码和案例给大家,今天把分享Python可视化案例TOP 50下,如果想转行做数据分析,这两篇推文强烈建议收藏,对于学习有任何问题都可以点击阅读原文向行哥提问哦
行哥玩Python
2020/07/14
2.8K0
TOP50 Python可视化经典案例下(附源码,建议收藏)
一文汇总Python可视化工具及图表
正所谓“一图胜千言”,数据可视化是数据科学中重要的一项工作,在面对海量的大数据中,如果没有图表直观的展示复杂数据,我们往往会摸不着头脑。通过可视化的图表可以直观了解数据潜藏的重要信息,以便在业务和决策中发现数据背后的价值!
算法进阶
2023/10/26
8200
一文汇总Python可视化工具及图表
【sklearn】1.分类决策树
决策树是机器学习中的一种常用算法。相关数学理论我也曾在数学建模专栏中数学建模学习笔记(二十五)决策树 介绍过,本篇博文不注重相关数学原理,主要注重使用sklearn实现分类树的效果。 参考课程见【2020机器学习全集】菜菜的sklearn完整版
zstar
2022/06/14
8140
【sklearn】1.分类决策树
【机器学习】决策树代码练习
1.分类决策树模型是表示基于特征对实例进行分类的树形结构。决策树可以转换成一个if-then规则的集合,也可以看作是定义在特征空间划分上的类的条件概率分布。
算法进阶
2022/06/02
3930
【机器学习】决策树代码练习
决策树(Decision Tree,DT)
Quinlan在1986年提出的ID3算法、1993年提出的C4.5算法 Breiman等人在1984年提出的CART算法
Michael阿明
2020/07/13
1.7K0
决策树(Decision Tree,DT)
深度好文 | Matplotlib 可视化最有价值的 50 个图表(附完整 Python 源代码)
在数据分析和可视化中最有用的 50 个 Matplotlib 图表。 这些图表列表允许您使用 python 的 matplotlib 和 seaborn 库选择要显示的可视化对象。
数据派THU
2019/05/09
1.7K0
深度好文 | Matplotlib 可视化最有价值的 50 个图表(附完整 Python 源代码)
python | 工作笔记 | pandas 常用总结
之前使用pandas处理数据使用的少,最近在实习中经常用到,故自以为把心得总结一番。 说明:有部分是网上查到的案例,觉得很实用,就把它搬过来了。 ---- DataFrame的列名 concat拼接 merge 两个dataframe拼接 计算nan的个数 排序 删除重复记录 使用pandas画图中文显示问题 双坐标轴的图 enumerate函数 时间处理 时间转换为周几周月 画图 一个框中框中画多个图 多个子图 1.DataFrame的列名 ## 方法一:全部修改 df.columns = ['
努力在北京混出人样
2018/05/14
1.1K0
分别用逻辑回归和决策树实现鸢尾花数据集分类
学习了决策树和逻辑回归的理论知识,决定亲自上手尝试一下。最终导出决策树的决策过程的图片和pdf。逻辑回归部分参考的是用逻辑回归实现鸢尾花数据集分类,感谢原作者xiaoyangerr 注意:要导出为pdf先必须安装graphviz(这是一个软件)并且安装pydotplus这个包,把它的graphviz加入系统的环境变量path,否则会报错 决策树 from sklearn.datasets import load_iris from sklearn import tree from sklearn.mo
Aidol
2020/07/23
1.5K0
分别用逻辑回归和决策树实现鸢尾花数据集分类
完整版|Matplotlib 可视化最有价值的 50 个图表
在数据分析和可视化中最有用的 50 个 Matplotlib 图表。这些图表列表允许您使用 python 的 matplotlib 和 seaborn 库选择要显示的可视化对象。
石晓文
2019/10/31
1.3K0
推荐阅读
相关推荐
来自“非洲”的树可视化工具包
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文