前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >怎么样使用Python Matplotlib绘制决策树

怎么样使用Python Matplotlib绘制决策树

作者头像
fanjy
发布2022-11-16 10:55:15
1.2K0
发布2022-11-16 10:55:15
举报
文章被收录于专栏:完美Excel完美Excel

标签:Python,Matplotlib,决策树

有时候,我们可能想用Python绘制决策树,以了解算法如何拆分数据。决策树可能是最“易于理解”的机器学习算法之一,因为我们可以看到如何正确地作决策。

本文介绍如何用Python绘制决策树。

首先,需要确保已经安装了下面的3个库:

1.skearn——一个流行的Python机器学习库

2.matplotlib——图表库

3.graphviz——另一个用于绘制决策树的图表库

可以使用下面的命令安装:

pip install sklearn matplotlib graphviz

数据集

Iris花数据集是研究机器学习的常用数据集。该数据集是由英国统计学家和生物学家罗纳德·费舍尔于1936年提出的。

该数据集包含3种不同类型的Iris花(Setosa、Versicolor和Virginica)的花瓣和萼片长度和宽度。每种类型的Iris有50个样本。

sklearn库包括一些供人们使用的玩具数据集,Iris就是其中之一。可以按如下方式导入Iris数据集:

from sklearn.datasets import load_iris

iris = load_iris()

iris.keys()

如下图1所示。

图1

load_iris()实际上返回了一个字典,其中包含有关iris花数据集的多个相关信息:

  • data:数据本身,即4个特征
  • target:每个样本的标签(0-setosa,1-versicolor,2-virginica)
  • target_names:实际的花名称
  • feature_names:四个特征的名称,(‘萼片长度(cm)’、‘萼片宽度(cm)’、‘花瓣长度(cm)’、‘花瓣宽度(cm)’)

要访问iris数据集(字典)中的每个项目,可以使用索引或“点”符号。

图2

如下图3所示,数据集包含4个特征,所有数据均为数值。通过学习数据集中呈现的模式,我们希望在给定花瓣和萼片长度和宽度时预测Iris类型。这里将使用决策树分类器(Decision Tree Classifier)模型。

图3

将变量X赋值给特征(features),y赋值给目标(target)。然后将数据拆分为训练数据集和测试数据集。random_state=0将使模型结果可重新生成,这意味着在自己的计算机上运行代码将生成与我们在此处(上图3)显示的相同的结果。

决策树分类器(Decision Tree Classifier)

分类器是一种机器学习算法,用于为输入数据赋值类别标签。例如,如果我们将这四个特征输入分类器,那么它将向我们返回三种Iris类型中的一种。

sklearn库使创建决策树分类器变得非常容易。fit()方法是“训练”部分,基本上使用特征和目标变量来构建决策树并从数据模式中学习。

图4

现在我们有了一个决策树分类器模型,有几种方法可以可视化它。

使用sklearn进行简单可视化

sklearn库提供了决策树的超简单可视化。可以在sklearn.tree模块中调用export_text()方法。

图5

使用Matplotlib绘制决策树

sklearn.tree模块有一种plot_tree方法,实际上在后台使用matplotlib绘制决策树。

图6

下图7更好看,每个节点中已经有一个树状图,其中包含一些有用的数据。

图7

绘制特征重要性

模型特征重要性告诉我们在进行这些决策拆分时哪个特征最重要。可以通过调用.feature_importances_属性来查看重要性排序。注意,这些因子的顺序与feature_names的顺序相匹配。在我们的示例中,显示花瓣宽度(petal width)是分割的最重要决定。

图8

可以使用matplotlib水平条形图来绘制特征重要性,使其更具视觉效果。

图9

效果如下图10所示。

图10

注:本文学习整理自pythoninoffice.com,供有兴趣的朋友参考。

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

本文分享自 完美Excel 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档