1071svm函数 r语言_如何利用R语言中的rpart函数建立决策树模型
决策树是根据若干输入变量的值构造出一个适合的模型,以此来预测输出变量的值,并用树形结构展示出来。决策树主要有两个类别:分类树和回归树。分类树主要针对离散的目标变量,回归树则针对连续的目标变量。R语言中的rpart软件包既可以实现回归树,又可以实现分类树。
1 安装并加载rpart软件包。
install.packages("rpart")
library(rpart)
rpart()函数的基本形式为:
rpart(formula, data, weights, subset, na.action = na.rpart, method, model = FALSE, x = FALSE, y = TRUE, parms, control, cost, ...)
其中,formula为要建立模型的公式,一般格式为y~x1+x2+...+xn。当输入变量为除y以外的所有变量时,可简化为y~.来表示;data为训练数据集;subset可以帮助我们选出data中的若干行来建立模型;na.action为缺失值处理方式,默认删除缺失样本;method用于选择决策树的类型,主要有anova回归树、class分类树,另外还有exp、poisson;control中含有大量参数,与rpart.control一致,minsplit表示每个节点中所含样本数的最小值,minbucket表示每个叶节中所含样本数的最小值,cp表示复杂度参数,maxdepth表示节点层次的最大值。
2 读取数据集。
sz_data=read.csv("sz_data.csv",head=T,encoding="utf-8")
head(sz_data);dim(sz_data) #查看数据的前几行和数据维度
3 进行数据预处理。在实际应用中,如果数据有缺失值,需要先按照一定的方法先对缺失值进行处理。这里我们直接划分训练集和测试集,并且随机抽取70%的样本作为训练集。
n=0.7*nrow(sz_data) #作为训练集的样本量
sub_train=sample(nrow(sz_data),n)#随机抽取n个样本
data_train=sz_data[sub_train,-1]#训练集
data_test=sz_data[-sub_train,-1]#测试集
head(data_train);dim(data_train)
head(data_test);dim(data_test)
4 由于数据集的目标变量是离散变量,因此选择method="class"。本例中的节点层次的最大值设为2,参数的优劣可根据后面计算的错误率反复验证。
rp_fit1=rpart(is_rise~.,data_train,method="class",maxdepth=2,minsplit=10)#建立分类树
summary(rp_fit1)
print(rp_fit1)#导出决策树的表格
结果显示根节点共有294个样本,即全部训练数据集。"2)"和"3)"以"Opening"变量为节点,将样本分为两支,分别是8、286个样本。
5 绘制决策树图形。这里调整了参数,在图形中做一些对比。
rp_fit2=rpart(is_rise~.,data_train,method="class",maxdepth=3,minsplit=10) #建立分类树2
par(mfrow = c(1,2), xpd = NA)
plot(rp_fit1)
text(rp_fit1,use.n=TRUE)
plot(rp_fit2)
text(rp_fit2,use.n=TRUE)
6 验证模型的准确性。
#对测试集预测目标变量
pre_is_rise=predict(rp_fit1,data_test,type="class")
pre_is_rise
#计算错误率
error_rp=sum(pre_is_rise!=data_test$is_rise)/nrow(data_test);error_rp
实际应用中,对参数、输入变量等进行调整,可增加准确度。
欢庆双节
1071svm函数 r语言_如何利用R语言中的rpart函数建立决策树模型相关推荐
- R语言(把银行已认购定期存款的客户原始数据建立决策树模型,从而预测新一批客户是否会认购定期存款)
原始数据:bank 输入变量: #银行客户资料: 1-年龄(数字) 2-工作:工作类型(分类:"管理","未知","失业","管理 ...
- rstudio r语言_如何在R中接受用户输入?
rstudio r语言 Taking a user input is very simple in R using readline() function. In this tutorial, we ...
- r语言实现sem_利用R语言做结构方程模型分析
R的功能很强大,各种包很多.但就是因为包太多,造成了很大的麻烦.不可避免的,可以做结构方程模型的包也不少,例如:sem.psych.OpenMx,lavaan等.我选择了lavaan包.原因:语法简介 ...
- python 运行r语言_如何在R中运行Python
python 运行r语言 尽管我很喜欢R,但很显然Python还是一种很棒的语言-既适用于数据科学又适用于通用计算. R用户想要在Python中做一些事情可能有充分的理由. 也许这是一个很棒的库,还没 ...
- 计算密码子频率的代码R语言_科学网—R语言终止密码子统计 - 熊荣川的博文
熊荣川 六盘水师范学院生物信息学实验室 #R语言终止密码子统计 setwd("**") infile = "protein1.fasta" outname = ...
- R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型
原文链接:http://tecdat.cn/?p=11974 R2WinBUGS软件包提供了从R调用WinBUGS的便捷功能.它自动以WinBUGS可读的格式写入数据和脚本,以进行批处理(自1.4版开 ...
- c语言dummy作为参数,C语言中的dummy函数
(1)什么是dummy函数? 和其他C语言函数相同,有函数的返回值类型和形参定义,也有函数体,只是函数体内部没有任何执行语句.实际也称为空函数. (2)为什么要定义dummy函数? dummy函数可以 ...
- 函数中有多个return?C语言中,一个函数可以有几个返回值?
在移植wifi的代码时,遇到了一些与下面类似的函数,这些函数中有不只一个return,这可是个新鲜的玩意儿: int func (int b) {int a=5;if (a>b)return a ...
- c语言休眠函数useconds类型,带你了解C语言中的Sleep函数(附代码)
Sleep函数: 功 能: 执行挂起一段时间 用 法:unsigned sleep(unsigned seconds); 注意: 在VC中使用带上头文件#include ,在Linux下,gcc编译器 ...
最新文章
- spring jpa @Query中使用in
- R语言可视化绘图基础知识详解
- 当上 CTO 才发现:程序员时常犯的 4 个错误有多可怕!
- 微信JS-SDK开发:扫一扫接口功能实现
- Java基础-static 关键字解析
- established关键字
- php井字游戏代码_PHP初级笔试题:Tic-Tac-Toe(n阶井字棋)判断胜负
- [翻译]利用C#获取终端服务(Terminal Services)会话的闲置时间
- 一个意想不到的CDO.Message 错误
- 三包围结构的字是什么样的_清桦学书之结构篇——包围结构。
- 如何确认RNA的质量?附RNA提取实验方法技巧分析
- 最新抖音简单无人直播教程
- (文末送书)字符数组与字符串
- B站《三体》动画正式开播 刘慈欣:宇宙很大,生活更大
- 用计算机算出爸爸我爱你,爸爸,我爱你。
- Terminate vs Disconnect(别再傻傻分不清楚了)
- IOS系统ipa软件包在线安装
- 面试笔试中算法设计问题的回答技巧总结
- HDU 3440 House Man (差分约束)
- 汽车java歌曲_车载音乐推荐 50首适合开车听的歌曲 2019车载歌曲 开车必备100首...