R语言 决策树 可视化8

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

原创 我才是赵西西 庄闪闪的R语言手册 2021-02-09 21:00

收录于合集

#R可视乎90个

#R学习173个

#R问题28个

简介

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

方法一

使用基础包绘图函数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)

640?wx_fmt=png&tp=wxpic&wxfrom=5&wx_lazy=1&wx_co=1

从这副图片可以发现,用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内然后修改图片内部元素。

 

既往专辑

 

0?wx_fmt=jpeg

我才是赵西西

s?search_click_id=17596924487772327600-1684154364721-4262407981&__biz=MzI1NjUwMjQxMQ==&mid=2247490656&idx=1&sn=d4817aabce9b415d539b180a3fffcdb9&chksm=ea24e384dd536a92f3f59455047abe5bc76c4ac020ff118387886f815ca914706616da347ed0&scene=7&subscene=10000&clicktime=1684154364&enterid=1684154364&sessionid=0&ascene=65&fasttmpl_type=0&fasttmpl_fullversion=6680662-zh_CN-zip&fasttmpl_flag=0&realreporttime=1684154364762&devicetype=android-31&version=28002353&nettype=WIFI&abtest_cookie=AAACAA%3D%3D&lang=zh_CN&exportkey=n_ChQIAhIQ4h6MroXBRXwA3XaeqVSmARLcAQIE97dBBAEAAAAAAKRbBipw8lIAAAAOpnltbLcz9gKNyK89dVj0yOC1KXzqKhMyrVQwdsw%2Fno9GRt4Mp6PrkAHQCWZ1SRkJoRVOj8BbiSxUqGQ3j2KVR4ZmHKk%2FsmeIdoNZknWHxIV7UNLYJVDNgXo31ygAghpR0IF%2FdYqrIjksLJHnzYQ1abWw1NNH9%2B7pnJq%2BmIiuIHOYVQiYOtGErfb%2BGDhY33gxTPr3CEKGWycYg6lpWki4zK%2FtVu0dxHx4lYArx3STO6i5jVA6ntHyVo%2Fi9wNSfYTWdpgTlgs%3D&pass_ticket=Gr%2B3mNa74XIIT%2Fmf3EVdBGZOafgmAI0L0LPG1Q3hXW1eZvV72N7ZmfVQOwuZToBSqYqmj8qzYAARReN063bnLg%3D%3D&wx_header=3稀罕作者

收录于合集 #R可视乎

 90个

上一篇R分享|自制112页可视化课件下一篇可视化中你最常用的软件包有哪些?

阅读原文

阅读 993

分享收藏

104

喜欢此内容的人还喜欢

R学习|你还在用传统的LASSO回归可视化嘛?

 

劝人学医TDLP

不喜欢

不看的原因

确定

  • 内容质量低
  • 不看此公众号

0?wx_fmt=jpeg&tp=wxpic

007 RNAseq数据处理实战之(一)导入数据、数据清洗

 

生信小树苗

不喜欢

不看的原因

确定

  • 内容质量低
  • 不看此公众号

0?wx_fmt=jpeg&tp=wxpic

主成分分析(PCA)详解-2

 

数据与平行世界

不喜欢

不看的原因

确定

  • 内容质量低
  • 不看此公众号

0?wx_fmt=jpeg&tp=wxpic

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值