美文网首页
逼真,特别逼真的决策树可视化

逼真,特别逼真的决策树可视化

作者: 统计学家 | 来源:发表于2022-01-17 17:01 被阅读0次

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

image image

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

image

下面就向大家介绍一下这个神器 —— pybaobabdt的极简入门用法

安装GraphViz

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

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

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

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

image

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

image

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

image

安装pygraphviz和pybaobabdt

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

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

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

pybaobabdt用法

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

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')
image

这个图怎么看呢?

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

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

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

绘制随机森林

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)
image

怎么用,是不是很酷,赶紧去试试吧!
如有收获,可否在看、收藏、转发一下?感谢~

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

相关文章

  • 逼真,特别逼真的决策树可视化

    同学们好,决策树的可视化,我以为之前介绍的方法已经够惊艳了(决策树可视化,被惊艳到了![https://mp.we...

  • 决策树

    数据信息 划分数据集 决策树创建 可视化决策树 分析重要信息 决策树的裁剪 可视化结果 其它一些接口

  • python决策树(二叉树、树)的可视化

    问题描述 在我学习机器学习实战-决策树部分,欲可视化决策树结构。最终可视化结果: 解决方案 决策树由嵌套字典组成,...

  • 装逼

    裝逼不牛逼 牛逼不装逼 牛逼要裝逼 装逼真牛逼

  • 决策树(Decision Tree)算法

    1 理论部分 需要弄清楚几个概念信息熵,决策树,决策树优化, 剪枝 ,决策树可视化 1 信息熵(Entropy 单...

  • 拍照徐花花

    没有相机的年代, 画画显得何等重要, 特别是哪些特别逼真的画。 有了相机以后,画着玩吧, 何必画的如此逼真! 傻。...

  • 决策树的构建及可视化——帮自己配副隐形眼镜

    本文以一个新的数据集(隐形眼镜数据集)为基础实现构建决策树、决策树的保存与加载、利用决策树分类、决策树的可视化,前...

  • 逼真 逼假

    今天上午,我和爸爸妈妈在一起,爸爸谈到,有一次我说了一个词叫“逼假”。 因为我知道有一个词叫“逼真”,然后我看到假...

  • 2018-05-14

    机器学习算法优缺点及其应用领域 决策树 一、 决策树优点 1、决策树易于理解和解释,可以可视化分析,容易提取出规则...

  • 常用机器学习算法优缺点及其应用领域

    机器学习算法优缺点及其应用领域 决策树 一、 决策树优点 1、决策树易于理解和解释,可以可视化分析,容易提取出规...

网友评论

      本文标题:逼真,特别逼真的决策树可视化

      本文链接:https://www.haomeiwen.com/subject/ozwchrtx.html