专栏首页庄闪闪的R语言手册R可视乎|决策树结果可视化

R可视乎|决策树结果可视化

简介

决策树是一种非常有用的分类方法,它能够对新出现的对象给出正确的分类。比起文本描述的规则,我们更希望能使用图形来直观展示决策树的结果,这就是本文介绍的重点——决策树结果可视化。

方法一

使用基础包绘图函数plot()

  • 优点:适用于各种模型,如raprt模型、C5.0模型等
  • 缺点:图形复杂,规则显示不明确

这里使用我自己通过问卷调查获得的一份hospital数据,做一个简单示范。大家可以将自己的数据进行导入(如何导入?可见推文:R数据科学|第八章内容介绍),替换hospital数据。

使用C5.0()进行决策树模型的构建,因变量需要转化为因子类型,并将结果保存到hospital_model变量中,之后用plot()进行可视化。plot()中包含许多调整图形的参数,详细内容可以参考庄闪闪编写的R语言可视化手册,这里不做过多解释。

hospital_model <- C5.0(hospital_train[,-9],as.factor(hospital_train$use))
plot(hospital_model)

从这副图片可以发现,用plot进行决策树可视化效果不是很好,可以说很丑陋了!因此更推荐后面两种方法。

方法二

使用rpart.plot包绘图函数rpart.plot()

  • 优点:图形美观,规则显示清晰明了
  • 缺点:只适用于rpart模型

rpart.plot()函数的内部参数结构如下:

rpart.plot(x = stop("no 'x' arg"),
    type = 2, extra = "auto",
    under = FALSE, fallen.leaves = TRUE,
    digits = 2, varlen = 0, faclen = 0, roundint = TRUE,
    cex = NULL, tweak = 1,
    clip.facs = FALSE, clip.right.labs = TRUE,
    snip = FALSE,
    box.palette = "auto", shadow.col = 0,
    ...)

内部参数过多,就不做详细解释。如果对这部分内容感兴趣可以通过帮助文档进行查询(?rpart.plot)

以hospital数据为例,使用rpart()进行决策树模型的构建,并将结果保存到model变量中,在这个模型中,~左端是因变量,~右端的"."表示将除了use以外的所有变量作为自变量,你可以根据数据来调整自己的模型结构。之后用rpart.plot()进行可视化。

library(rpart.plot)
model <- rpart(hospital$use~.,data = hospital)
rpart.plot(model)

如何你想改变决策树的样式,可以通过调整type参数来实现。

rpart.plot(model,type = 0)

如何你想改变各结点的颜色,可以通过调整box.palette参数来实现。若只添加一种颜色,则全部结点颜色相同。

rpart.plot(model,type = 0,box.palette = "yellow")

如果想要区分不同的结点,可以为box.palette设置多种颜色。

rpart.plot(model,type = 2,box.palette = c("pink", "gray"))

方法三

使用rattle包绘图函数fancyRpartPlot()

  • 优点:图形更加精美,操作简单
  • 缺点:只适用于rpart模型,需要加载的包比较多

fancyRpartPlot()函数的内部参数结构如下:

fancyRpartPlot(model, main="", sub, caption, palettes, type=2, ...)

各参数含义如下表:

参数

作用

model

一个rpart对象

main

图形标题

sub

副标题。默认值是一个包含日期、时间和用户名的字符串。

captions

图形右下角的说明

palettes

颜色调整

types

图形样式

以方法二中的model为例,使用fancyRpartPlot()进行结果可视化。

library(rpart)
library(tibble)
library(bitops)
library(rattle)
library(rpart.plot)
library(RColorBrewer)
model <- rpart(hospital$use~.,data = hospital)
fancyRpartPlot(model)

如果想要调整各结点的颜色,可以通过调整palette参数来实现,其用法与方法二中的box.palette相同。

fancyRpartPlot(model,palettes=c("Greys", "Blues"))

如果你想手动调整图片内部的细节,你可以参考这篇推文:AI不会,没关系,R可以导出PPT格式的图形啦,导入到ppt内然后修改图片内部元素。

本文分享自微信公众号 - 庄闪闪的R语言手册(Zss_R4ds),作者:我才是赵西西

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

原始发表时间:2021-02-09

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 决策树结果可视化

    决策树是一种优秀的机器学习算法,具有很好模型可解释性,有着广泛地应用。如何对决策树模型的结果做可视化分析,以便于更多人理解决策树做决策的机理?

    陆勤_数据人网
  • R可视乎|主成分分析结果可视化

    主成分分析法是很常用的一种数据降维方法[1]。该方法可以减少数据的维数,并保持对方差贡献最大的特征,相当于保留低阶主成分,忽略高阶主成分。

    庄闪闪
  • python决策树GraphViz可视化

    安装GraphViz 下载地址:https://graphviz.gitlab.io/_pages/Download/Download_windows.html...

    听城
  • 用dtreeviz实现决策树可视化

    作者 | Eryk Lewinson 编译 | VK 来源 | Towards Data Science

    磐创AI
  • Circoletto可视化Blast结果

    Yet, there is great need for intutive ways to quickly understand their output, a...

    用户7010445
  • 基于决策树的红酒分类可视化

    决策树Decision Tree是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规 则,并用树状图的结构来呈现这些规则,以解决分类和...

    皮大大
  • 机器学习基础:决策树的可视化

    目前无论是机器学习竞赛还是工业界,最流行、应用最广泛的xgboost其实是优化后的GBDT(LightGBM里面的boosting比较经典稳定的也是GBDT哦!...

    统计学家
  • 实用 | 分享一个决策树可视化工具

    【磐创AI导读】:这篇文章希望跟大家分享一个可视化决策树或者随机森林的工具。这可以帮助我们更好的去理解或解释我们的模型。想要获取更多的机器学习、深度学习资源。欢...

    磐创AI
  • 可视化你的BLAST结果

    人类已经使用数据可视化技术很长一段时间了,图像和图表已被证明是一种有效的方法来进行新信息的传达与教学。有研究表明,80%的人还记得他们所看到的,但只有20%的人...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券