R语言实现决策树

article/2025/9/29 17:43:31

R语言实现决策树

提示:本文使用R语言实现决策树,并对决策树结构图进行美化


文章目录

  • R语言实现决策树
  • 数据介绍
  • 一、相关R包的下载
  • 二、实现过程
    • 1.数据读取
    • 2.训练集与验证集划分
    • 3.构建决策树并绘制图形
    • 4.测试模型
  • 总结


数据介绍

group就是分类结果:case或control两个标签;其余为自变量
在这里插入图片描述
部分数据内容:

> mydataage    sex dishistory index1 index2 index3 index4 index5 index6   group
1    80   male        yes     26    4.2    1.4   53.0   50.0   0.10    case
2    80   male        yes     22    6.6    2.0   63.1   67.2   1.90 control
3    80   male        yes     24    6.9    1.8   58.1   50.3   2.10 control
4    80   male        yes     21    6.9    2.9   57.3   53.0  -2.10 control
5    73   male        yes     28    4.3    0.9   72.0   70.0   3.00    case
6    73   male        yes     22    6.3    0.8   50.2   50.3  -1.40 control
7    73   male        yes     25    6.9    1.6   53.1   61.0   1.90 control
8    73   male        yes     22    5.6    0.9   53.4   53.0  -1.60 control
9    82   male        yes     27    5.7    0.8   69.3   71.2   3.40    case
10   82   male        yes     24    7.1    1.8   59.0   51.0   0.40 control
11   82   male        yes     22    5.9    2.1   59.1   53.1  -2.90 control
12   82   male        yes     21    5.9    3.0   62.4   64.0  -1.30 control
13   77   male        yes     23    5.0    1.5   72.3   62.8   1.60    case
14   77   male        yes     25    6.1    2.9   49.9   50.1  -1.30 control
15   77   male        yes     23    7.2    2.6   54.2   51.0   0.60 control
16   77   male        yes     24    5.1    1.7   51.6   64.1  -1.30 control
17   76   male        yes     22    4.9    1.9   53.4   51.9  -0.60    case
18   76   male        yes     22    6.4    1.5   65.2   60.3  -1.60 control
19   76   male        yes     26    6.0    2.3   51.3   67.2  -1.20 control
20   76   male        yes     24    6.0    2.6   53.4   51.3  -2.10 control
21   68   male        yes     26    4.8    1.8   65.5   67.5   0.10    case
22   68   male        yes     22    6.5    2.3   51.3   50.6  -1.90 control
23   68   male        yes     20    6.9    1.7   59.6   62.7   0.90 control
24   68   male        yes     22    6.9    2.8   57.2   52.3  -1.90 control
25   75   male         no     26    6.3    2.6   69.3   62.7   0.40    case
26   75   male         no     21    6.4    2.3   53.1   64.9   1.00 control
27   75   male         no     22    4.7    1.6   59.1   50.1  -2.30 control
28   75   male         no     25    6.9    2.8   57.2   53.0   0.60 control
29   81   male        yes     27    4.2    1.4   64.8   63.8   0.20    case
30   81   male        yes     20    5.8    2.9   52.9   53.1  -1.30 control
31   81   male        yes     22    6.9    2.6   56.2   56.4  -1.60 control
32   81   male        yes     21    5.9    1.2   57.4   52.1  -1.90 control
33   69   male        yes     27    5.4    1.8   68.2   64.1   0.60    case
34   69   male        yes     23    7.2    3.0   68.4   61.2   0.90 control
35   69   male        yes     23    9.8    1.8   63.1   49.3  -1.10 control
36   69   male        yes     21    7.2    2.5   60.5   62.9   1.50 control
37   84   male        yes     22    5.2    2.9   69.8   65.4   0.30    case
38   84   male        yes     21    6.2    1.4   51.3   51.3   1.90 control
39   84   male        yes     22    6.8    2.9   65.2   60.2   0.10 control
40   84   male        yes     24    6.2    2.0   59.1   52.1   1.50 control
41   72   male        yes     21    5.1    1.2   71.2   66.1   1.30    case
42   72   male        yes     21    7.1    1.7   55.9   49.0  -2.30 control
43   72   male        yes     21    7.1    3.0   61.3   62.1  -1.80 control
44   72   male        yes     27    5.9    1.7   56.1   55.1   0.90 control
45   77   male        yes     22    4.7    2.1   70.6   67.2   1.60    case
46   77   male        yes     22    7.2    3.1   64.9   51.4   0.60 control
47   77   male        yes     22    5.1    2.6   69.0   53.6  -2.80 control
48   77   male        yes     21    7.2    2.9   55.9   65.2   0.40 control
49   80   male        yes     26    4.6    1.5   69.0   68.9   0.80    case
50   80   male        yes     21    7.1    2.6   68.4   52.8   0.90 control
51   80   male        yes     21    6.0    2.6   56.2   55.3  -1.80 control
52   80   male        yes     22    7.1    2.8   52.9   50.1  -1.30 control
53   67   male        yes     27    5.8    1.4   62.5   69.0   1.40    case
54   67   male        yes     21    6.0    2.6   57.3   50.5  -0.20 control
55   67   male        yes     23    5.6    2.1   58.1   53.6  -1.40 control
56   67   male        yes     22    6.1    1.2   70.0   52.0  -1.82 control
57   76   male        yes     24    6.0    1.7   59.8   70.2   1.20    case
58   76   male        yes     26    6.1    1.8   57.3   66.2  -0.20 control
59   76   male        yes     22    6.5    2.9   68.4   64.0  -2.10 control
60   76   male        yes     22    7.1    2.6   55.3   59.7   1.90 control
61   81   male        yes     24    5.9    2.4   72.1   61.2   2.10    case
62   81   male        yes     21    7.3    3.1   60.5   53.1   0.90 control
63   81   male        yes     22    5.2    1.6   56.8   48.9   1.50 control
64   81   male        yes     24    5.8    1.0   54.2   50.1  -1.90 control
65   92   male        yes     23    5.5    2.6   60.4   60.5   2.00    case
66   91   male        yes     21    7.2    2.8   67.5   49.3  -1.82 control
67   92   male        yes     24    6.6    2.0   68.4   59.7  -1.30 control
68   92   male        yes     20    5.4    2.6   57.3   50.1   0.90 control
69   83   male        yes     26    4.4    1.8   69.4   69.3   2.20    case
70   83   male        yes     24    7.2    1.6   65.2   62.8  -1.60 control
71   83   male        yes     20    6.9    1.2   52.0   60.2  -2.60 control
72   90 female        yes     23    6.7    0.9   51.6   52.9  -2.90 control
73   64   male        yes     28    5.2    1.7   68.9   58.1  -1.20    case
74   64   male        yes     21    6.5    3.2   59.1   51.0  -2.90 control
75   64   male        yes     23    6.3    3.0   54.0   51.3   0.80 control
76   64   male        yes     22    5.3    1.9   57.2   59.4  -2.30 control
77   78   male        yes     28    4.8    2.6   67.5   57.3  -1.80    case
78   78   male        yes     20    5.4    1.1   58.7   53.0   0.60 control
79   78   male        yes     25    6.4    2.9   52.0   64.0   1.50 control
80   78   male        yes     23    7.2    2.9   58.1   59.0   0.80 control
81   70   male        yes     29    4.7    1.1   71.6   56.4  -2.60    case
82   70   male        yes     22    6.4    2.6   69.0   48.0  -1.10 control
83   70   male        yes     23    7.2    2.4   58.3   62.8   0.90 control
84   70   male        yes     23    6.5    2.1   64.9   50.1  -1.60 control
85   81   male        yes     29    4.8    2.1   71.9   55.2  -2.10    case
86   81   male        yes     23    5.6    1.2   53.1   28.1  -1.30 control
87   81   male        yes     21    5.6    1.7   57.2   52.1  -0.20 control
88   81   male        yes     23    6.2    3.0   61.3   51.3  -1.90 control
89   73   male        yes     26    5.2    2.1   72.0   69.1   0.10    case
90   73   male        yes     22    6.5    2.8   50.6   62.9  -1.30 control
91   73   male        yes     22    6.9    1.6   50.6   49.6  -1.60 control
92   73   male        yes     21    6.3    1.0   57.2   68.9  -1.30 control
93   77   male         no     27    5.1    2.0   70.9   55.6   0.60    case
94   77   male         no     20    7.2    2.6   64.9   62.9  -1.82 control
95   84 female         no     27    7.1    1.8   56.2   61.2  -1.90 control
96   84 female         no     20    6.4    2.1   54.0   51.0  -2.60 control
97   68   male        yes     27    5.6    1.8   70.5   70.0   0.90    case
98   68   male        yes     21    6.2    1.6   56.1   50.4  -1.80 control
99   68   male        yes     24    5.8    2.7   56.8   50.9  -2.90 control
100  68   male        yes     24    6.9    2.4   54.2   61.2   0.80 control

提示:以上为部分数据,实际数据共392个样例


一、相关R包的下载

为实现决策树并对决策树的结构图进行美化,需要用到的R包如下:

  1. rpart
  2. tibble
  3. bitops
  4. rattle
  5. rpart.plot
  6. RColorBrewer

加载代码如下:

library(rpart)
library(tibble)
library(bitops)
library(rattle)
library(rpart.plot)
library(RColorBrewer)

二、实现过程

1.数据读取

read.table("D:\\Rprojects\\tree.csv",header=TRUE,sep=",")->mydata #读取数据

2.训练集与验证集划分

260个样例作为训练集,其余作为测试集

sub<-sample(1:392,260)
train<-mydata[sub,]
test<-mydata[-sub,]

3.构建决策树并绘制图形

利用训练集构建决策树:

model <- rpart(group~age+dishistory+index1+index2+index3+index4+index5+index6,data = train)
fancyRpartPlot(model)

结果如下图所示:
请添加图片描述

4.测试模型

利用验证集对模型结果进行验证:

x<-subset(test,select=-group)
pred<-predict(model,x,type="class")
k<-test[,"group"]
table(pred,k)

得到结果矩阵如下:

真实值casecontrol
预测值--
case311
control793

准确率:(31+93)/(31+93+7+1)
灵敏度:31/(31+7)
特异度:31/(93+1)


总结

以上就是本文所分享的内容,本文简单介绍了R语言实现决策树的基本操作以及利用fancyRpartplot()对生成的决策树结构图美化,具体可根据自己喜好调整。


http://chatgpt.dhexx.cn/article/g61oXqpn.shtml

相关文章

决策树与R语言(RPART)

关于决策树理论方面的介绍&#xff0c;李航的《统计机器学习》第五章有很好的讲解。 传统的ID3和C4.5一般用于分类问题&#xff0c;其中ID3使用信息增益进行特征选择&#xff0c;即递归的选择分类能力最强的特征对数据进行分割&#xff0c;C4.5唯一不同的是使用信息增益比进行…

经典查找算法 --- R树

R树&#xff1a;处理空间存储问题 -->是引用别人的文章 相信经过上面第一节的介绍&#xff0c;你已经对B树或者B树有所了解。这种树可以非常好的处理一维空间存储的问题。B树是一棵平衡树&#xff0c;它是把一维直线分为若干段线段&#xff0c;当我们查找满足某个要求的点的…

R语言︱决策树族——随机森林算法

每每以为攀得众山小&#xff0c;可、每每又切实来到起点&#xff0c;大牛们&#xff0c;缓缓脚步来俺笔记葩分享一下吧&#xff0c;please~ ——————————————————————————— 笔者寄语&#xff1a;有一篇《有监督学习选择深度学习还是随机森林或支持向…

R语言:画树图

原始数据长这样&#xff1a; “iyear”表示年份&#xff1b;“nkill”表示死亡人数&#xff1b;“region”表示地区&#xff1b;“总计”表示某年份死亡总人数&#xff1b;nkii里的缺失数据自动按“0”运算。 数据存储在名为“ljs”的csv格式里。 应提前下载好treemap包&#…

图解R树的内部结构及操作

本文是在https://blog.csdn.net/baimafujinji/article/details/89810217基础上增加了自己的理解和解释形成的。 R树的基本情况 R树&#xff08;R-tree&#xff09;是一种将&#xff22;树&#xff08;B树和B树统称B树&#xff09;扩展到多维情况下得到的数据结构&#xff0c;…

R树

先搞明白R树搜索、插入、删除过程。 R树是平衡树&#xff0c;可以理解为B树在N维空间上的扩展。 R树一定要满足一下要求&#xff1a; 1&#xff0e;根节点若非叶子节点&#xff0c;则至少有两个子节点&#xff1b; 2&#xff0e;每个非根叶节点和非叶节点包含的实体个数均介…

R tree

R树在数据库等领域做出的功绩是非常显著的。它很好的解决了在高维空间搜索等问题。举个R树在现实领域中能够解决的例子吧&#xff1a;查找20英里以内所有的餐厅。如果没有R树你会怎么解决&#xff1f;一般情况下我们会把餐厅的坐标(x,y)分为两个字段存放在数据库中&#xff0c;…

R树空间索引

R树在数据库等领域做出的功绩是非常显著的。它很好的解决了在高维空间搜索等问题。举个R树在现实领域中能够解决的例子吧&#xff1a;查找20英里以内所有的餐厅。如果没有R树你会怎么解决&#xff1f;一般情况下我们会把餐厅的坐标(x,y)分为两个字段存放在数据库中&#xff0c;…

搜索树之R树

产生背景 地理空间数据涉及各种海量且复杂的数据&#xff0c;找到合适的索引对空间数据的处理至关重要。 传统的B树索引针对字符、数字等一维属性数据的主关键字而设计&#xff0c;不适用于具有多维性的地理空间数据。 在GIS和CAD系统对空间索引需求的推动下&#xff0c;为满足…

R-Tree

R-Tree ​ R-Tree是一颗用来存储高维数据的平衡树&#xff0c;它把B树的思想扩展到了多维空间&#xff0c;采用了B树分割空间思想&#xff0c;并在添加、删除操作时采用合并、分解节点的方法&#xff0c;保证树的平衡性。 数据结构 ​ 每个R树的叶子节点包含了多个指向不同数…

R-tree总结

R-tree R-tree是用来做空间数据存储的树状数据结构。R-tree是B-tree向多维空间发展的另一种形式&#xff0c;并且R树也是平衡树。 R树的核心思想是聚合距离相近的节点并在树结构的上一层将其表示为这些节点的最小外接矩形&#xff0c;这个最小外接矩形就成为上一层的一个节点…

从B树、B+树、B*树谈到R 树

从B 树、B 树、B* 树谈到R 树 作者&#xff1a;July、weedge、Frankie。编程艺术室出品。 说明&#xff1a;本文从B树开始谈起&#xff0c;然后论述B树、B*树&#xff0c;最后谈到R 树。其中B树、B树及B*树部分由weedge完成&#xff0c;R 树部分由Frankie完成&#xff0c;全文…

R树简介

B树与R树 计算机磁盘的文件管理常使用B树和B树。B树和B树能良好地处理一维空间存储的问题。实际上&#xff0c;B树是一棵平衡树&#xff0c;它是把一维直线分为若干段线段&#xff0c;当我们查找满足某个要求的点的时候&#xff0c;只要去查找它所属的线段即可。这种思想其实是…

高级数据结构之R树(R-tree)

R树(R-tree)是一种将B树扩展到多维情况下得到的数据结构,它最初由Antonin Guttman于1984年提出。B树的结点中会存储一个键的集合,这些键把线分成片段,沿着那条线的点仅属于一个片段。因此,B树使得我们可以很容易地找到点。如果把沿线各处的点表示成B树结点,我们就能…

什么是R树?

什么是R树&#xff1f; R树是用来做空间数据存储的树状数据结构。例如给地理位置&#xff0c;矩形和多边形这类多维数据建立索引。R树是由Antonin Guttman于1984年提出的。 人们随后发现它在理论和应用方面都非常实用。 在现实生活中&#xff0c;R树可以用来存储地图上的空间信…

图解R树的原理及相关操作

B 树的搜索本质上是一维区间的划分过程&#xff0c;每次搜索节点所找到的子节点其实就是一个子区间。R 树是把 B 树的思想扩展到了多维空间&#xff0c; 采用了 B 树分割空间的思想&#xff0c;是一棵用来存储高维数据的平衡树。 ​ 对于一棵 R 树&#xff0c;叶子节点所在层…

算法设计与分析-习题-动态规划法求解多段图的最短路径问题(动态规划法)

问题描述 用动态规划法求解如图所示多段图中从顶点0到9的最短路径。 问题求解 图中顶点编号已经按照多段图的分段顺序编号&#xff0c;用动态规划法求解该多段图的过程如下&#xff1a; 最后&#xff0c;得到最短的路径为0、2、6、7、9&#xff0c;费用是97。

【动态规划法】求解0/1背包问题

问题描述 有5个物品&#xff0c;其重量分别是{2, 2, 6, 5, 4}&#xff0c;价值分别为{6, 3, 5, 4, 6}&#xff0c;背包的容量为10&#xff0c;计算背包所能装入物品的最大价值。 求解思路 在0/1背包问题中&#xff0c;物品i或者被装入背包&#xff0c;或者不被装入背包&#xf…

算法设计之动态规划法

算法设计之动态规划法 一、目的二、内容1.斐波那契数列①自底向上分析解决 ②自顶向下分析解决 2.走棋盘问题分析解决 3.爬台阶问题分析解决 三、反思与总结 一、目的 1.理解动态规划法的特征(多阶段决策\最优子结构\无后效性\子问题重复) 2.理解动态规划法的求解(划分过程\逆…

【动态规划法】求解TSP问题

问题详情 求解下图所示的TSP问题&#xff0c;计算出所经过的城市编号以及最短路径值&#xff0c;城市代价矩阵如图所示&#xff1a; 求解思路 假设从顶点i出发&#xff0c;令d(i, V’ )表示从顶点i出发经过V’ 中各个顶点一次且仅一次&#xff0c;最后回到出发点&#xff08;…