当使用决策树后我们想将决策结果进行展示时,可以使用dtreeviz进行绘图,现在用内置数据load_iris,进行demo演示

import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris, load_boston
from sklearn import tree
from dtreeviz.trees import *
# !pip install dtreeviz
iris = load_iris()
boston = load_boston()X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)clf = tree.DecisionTreeClassifier(max_depth=3, random_state=42)
clf.fit(X_train, y_train)
viz = dtreeviz(clf,x_data=X_train,y_data=y_train,target_name='class',feature_names=iris.feature_names, class_names=list(iris.target_names), title="Decision Tree - Iris data set")
viz


位于x轴的小三角形是拆分点。在第一个柱状图中,我们可以清楚地看到,所有观察到的刚毛类的花瓣长度都小于2.45厘米

树的右分支表示选择大于或等于拆分值的值,而左分支表示选择小于拆分值的值。

叶节点表示为饼图,饼图显示叶中的观察值的哪个部分属于哪个类

这里会遇到一个坑,就是graphviz安装,他不只是要pip install graphviz 而且还要安装吗,安装过程如下
https://graphviz.org/download/

之后就是安装,记得有个勾选是否添加到安装路径,那个一定要选,而且还需要多加一布,需要你自己去加个环境变量dot.exe

可以看看一个例子到底是怎么判断出来的

viz = dtreeviz(clf, x_data=X_train,y_data=y_train,target_name='class',feature_names=iris.feature_names, class_names=list(iris.target_names),title="Decision Tree - Iris data set", X=X_test[0])
viz

print(explain_prediction_path(clf, X_test[0], feature_names=iris.feature_names, explanation_type="plain_english"))

2.45 <= petal length (cm) < 4.75
petal width (cm) < 1.65

dtreeviz 画树模型相关推荐

  1. (二)提升树模型:Xgboost原理与实践

    本篇博客是提升树模型博客的第二篇文章,第一篇介绍GBDT的博客可以参看这里.第三篇介绍Lightgbm博客可以参看这里. 本篇博客是基于kingsam_的博客整理而来,在此表示感谢.在这篇文章的基础上 ...

  2. 【组队学习】【30期】6. 树模型与集成学习

    树模型与集成学习 航路开辟者:耿远昊 领航员:姜萌 航海士:耿远昊 基本信息 开源内容:https://github.com/datawhalechina/machine-learning-toy-c ...

  3. 树模型集成学习(Tree Embedding)

    树模型集成学习 集成学习主要有两个思想,分别是bagging和boosting.树模型的集成模型都是使用树作为基模型,最常用的cart树,常见的集成模型有RandomForest.GBDT.Xgboo ...

  4. 用python画时序图源代码_使用python实现画AR模型时序图

    背景: 用python画AR模型的时序图. 结果: 代码: import numpy as np import matplotlib.pyplot as plt """ ...

  5. Nat. Mach. Intell.|从局部解释到全局理解的树模型

    今天介绍美国华盛顿大学保罗·艾伦计算机科学与工程学院的Su-In Lee团队在nature mechine intelligence 2020的论文,该论文提出了一种基于博弈论沙普利值的TreeExp ...

  6. R语言使用caret包构建遗传算法树模型(Tree Models from Genetic Algorithms )构建回归模型、通过method参数指定算法名称

    R语言使用caret包构建遗传算法树模型(Tree Models from Genetic Algorithms  )构建回归模型.通过method参数指定算法名称.通过trainControl函数控 ...

  7. xgboost不能解决哪些问题?为什么?进而说明树模型有哪些缺陷?那种模型能够树模型的这种缺陷?

    xgboost不能解决哪些问题?为什么?进而说明树模型有哪些缺陷?那种模型能够树模型的这种缺陷? 目录

  8. python绘制3d图-python3利用Axes3D库画3D模型图

    Python3利用Axes3D库画3D模型图,供大家参考,具体内容如下 最近在学习机器学习相关的算法,用python实现.自己实现两个特征的线性回归,用Axes3D库进行建模. python代码 im ...

  9. 004_Gson树模型

    1. 树模型准备JSON文档的内存树表示.它构建了一个JsonObject节点树.它是一种灵活的方法, 类似于XML的DOM解析器. 2. 从JSON创建树 2.1. 在读取JSON之后, JsonP ...

  10. 深度学习核心技术精讲100篇(二十)-如何通过树模型实现梯度提升树(GBDT)+LR,随机森林(RandomForest) +LR

    前言 在讲如何通过树模型做特征工程之前,首先让我们回顾一下一个机器学习(除去深度学习项目部分)项目的大致流程: 从业务场景中抽象出问题--分类问题,回归问题,还是聚类问题等, 接下来是数据获取,数据清 ...

最新文章

  1. 求3*4数组的全部元素之和
  2. 6条可以成为更好程序员的建议
  3. Kernel PCI总线框架
  4. PHP随手记1--内置函数date
  5. ubuntu 13.04下MYSQL 5.5环境搭建
  6. 另类vs2015+xamarin 的android界面乱码 解决
  7. boost::core模块实现分配构造throws
  8. 深度学习(五)——DRN, Bi-directional RNN, Attention, seq2seq, DMN
  9. 为什么要实施服务器虚拟化
  10. 《Java8实战》笔记(10):用Optional取代null
  11. c# combobox集合数据不显示_excel打开数据时显示乱码/问号amp;看起来一样却v不出来怎么办...
  12. Visual Studio 2010 - 推荐的扩展[关闭]
  13. 帮助浏览器、help函数和doc函数 符号表述的数集
  14. 【渝粤题库】陕西师范大学200561 英语写作(一) 作业
  15. Git教程(快速上手,超详细)
  16. android dagger2 原理,Dagger2 系列(四)Dagger2.Android基本原理
  17. ping通服务器和telnet通端口
  18. Air202入坑指南1---lua开发环境的安装
  19. 基于BP神经网络的车牌识别问题研究附Matlab代码
  20. Redis基础命令(Hash类型)对field进行的操作

热门文章

  1. 深度神经网络:特点、问题及解决
  2. [洛谷P1082]同余方程
  3. DB查询语句的编写和执行顺序
  4. 11.消息摘要算法之MD5
  5. 错误提示之:SQL—无法在服务器上访问指定的路径或文件。请确保您具有必需的安全权限且该路径或文件存在。...
  6. PHP开源软件《个人管理系统》-希望大家一起来开发
  7. [转]在这新站如何在一天内被Google和百度收录
  8. C++编程语言中类的静态成员介绍
  9. php编程 之php基础 表单
  10. Oracle中的rownum不能使用大于的问题