当前位置: 首页 > news >正文

R语言进行集成学习算法:随机森林

# 10.4 集成学习及随机森林
# 导入car数据集
car <- read.table("data/car.data",sep = ",")
# 对变量重命名
colnames(car) <- c("buy","main","doors","capacity","lug_boot","safety","accept")
# 随机选取75%的数据作为训练集建立模型,25%的数据作为测试集用来验证模型
library(caret)
library(ggplot2)
library(lattice)
# 构建训练集的下标集
ind <- createDataPartition(car$accept,times=1,p=0.75,list=FALSE) 
# 构建测试集数据好训练集数据
carTR <- car[ind,]
carTE <- car[-ind,]
carTR<- within(carTR,accept <- factor(accept,levels=c("unacc","acc","good","vgood")))
carTE<- within(carTE,accept <- factor(accept,levels=c("unacc","acc","good","vgood")))# 使用adabag包中的bagging函数实现bagging算法
#install.packages("adabag")
library(adabag)
bagging.model <- bagging(accept~.,data=carTR)# 使用adabag包中的boosting函数实现boosting算法
boosting.model <- boosting(accept~.,data=carTR)# 使用randomForest包中的randomForest函数实现随机森林算法
#install.packages("randomForest")
library(randomForest)
randomForest.model <- randomForest(accept~.,data=carTR,ntree=500,mtry=3)# 预测结果,并构建混淆矩阵,查看准确率
# 构建result,存放预测结果
result <- data.frame(arithmetic=c("bagging","boosting","随机森林"),errTR=rep(0,3),errTE=rep(0,3))
for(i in 1:3){# 预测结果carTR_predict <- predict(switch(i,bagging.model,boosting.model,randomForest.model),newdata=carTR) # 训练集数据carTE_predict <- predict(switch(i,bagging.model,boosting.model,randomForest.model),newdata=carTE) # 测试集数据# 构建混淆矩阵tableTR <- table(actual=carTR$accept,predict=switch(i,carTR_predict$class,carTR_predict$class,carTR_predict))tableTE <- table(actual=carTE$accept,predict=switch(i,carTE_predict$class,carTE_predict$class,carTE_predict))# 计算误差率result[i,2] <- paste0(round((sum(tableTR)-sum(diag(tableTR)))*100/sum(tableTR),2),"%")result[i,3] <- paste0(round((sum(tableTE)-sum(diag(tableTE)))*100/sum(tableTE),2),"%")
}
# 查看结果
result

http://www.lryc.cn/news/400624.html

相关文章:

  • 虚拟机的状态更新
  • 基于hive数据库的泰坦尼克号幸存者数据分析
  • excel根据数据批量创建并重命名工作表
  • 智能合约和分布式应用管理系统:技术革新与未来展望
  • Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置”
  • MyBatis框架学习笔记(四):动态SQL语句、映射关系和缓存
  • 【C++PythonJava】字符处理详细解读_字符_ASCLL码_字母数字转换_算法竞赛_开发语言
  • 人像视频淡入淡出效果的灵敏检验方法
  • Unity UGUI Image Maskable
  • SpringCloud | 单体商城项目拆分(微服务)
  • uniapp 如何实现路由拦截,路由守卫
  • 人工智能算法工程师(中级)课程13-神经网络的优化与设计之梯度问题及优化与代码详解
  • Qt/QML学习-ComboBox
  • 微服务实战系列之玩转Docker(一)
  • Java中常见的语法糖
  • 数据库使用SSL加密连接
  • 华为OD算法题汇总
  • 服务器的rabbitmq的guest账号登不进去
  • 决策树(ID3,C4.5,C5.0,CART算法)以及条件推理决策树R语言实现
  • 文心一言《使用手册》,文心一言怎么用?
  • Spring Boot集成qwen:0.5b实现对话功能
  • GreenDao实现原理
  • Perl语言之数组
  • 写材料word和PPT
  • Centos---命令详解 vi 系统服务 网络
  • 【.NET全栈】ASP.NET开发web应用——ASP.NET中的样式、主题和母版页
  • [ruby on rails]部署时候产生ActiveRecord::PreparedStatementCacheExpired错误的原因及解决方法
  • 函数传值面试题
  • redis笔记2
  • Kafka(四) Consumer消费者