R语言圈子里面讨论的问题:基于二元分类的交叉验证逐步回归模型
专题介绍:R是一种广泛用于数据分析和统计计算的强大语言,于上世纪90年代开始发展起来。得益于全世界众多 爱好者的无尽努力,大家继而开发出了一种基于R但优于R基本文本编辑器的R Studio(用户的界面体验更好)。也正是由于全世界越来越多的数据科学社区和用户对R包的慷慨贡献,让R语言在全球范围内越来越流行。其中一些R包,例如MASS,SparkR, ggplot2,使数据操作,可视化和计算功能越来越强大。R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX、Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R的学术性开发比较早,适合生物学和医学等学术学科的科研人员使用。
这是我的第65篇原创文章,关于R语言和特征选择。
阅读完本文,你可以知道:
1 基于二元分类的交叉验证的逐步回归模型实现
美国格兰特教授认为:“帮助别人解决困难可以让人学习到更多的东西,你的经验和社会资本也随之积累,但这也不是一下子就能兑现的,他会在你不经意时给你带来惊喜。”
昨日,在我们的R语言圈子里面,有一位群友提出了如下问题。
他们组投稿了一篇论文,审稿人的意见:
我们R语言圈子群策群力,提供解决方案。
一种解决方案的R语言参考代码。
# R包
library(mlbench)
library(tidyverse)
library(caret)
library(MASS)
library(funModeling)
# 数据集
data(Ionosphere)
# 数据检视和探索
Ionosphere %>% View
Ionosphere %>% glimpse()
df_status(Ionosphere)
# 数据处理
Ionosphere$Class <- ifelse(as.character(Ionosphere$Class) == 'bad', 1, 0)
data <- Ionosphere %>% dplyr::select(-c(V1, V2))
data$Class <- as.factor(data$Class)
# 数据划分:训练集和测试集
set.seed(1234)
in_train <- createDataPartition(
y = data$Class,
p = 0.6,
list = FALSE
)
training <- data[in_train,]
testing <- data[-in_train,]
# 设置模型拟合参数
# 10次重复10折交叉验证
fitControl <- trainControl(method = "repeatedcv",
number = 10,
classProbs = TRUE,
summaryFunction = twoClassSummary,
repeats = 10)
# 逐步回归的交叉验证的方法
glmstep_mod <- train(make.names(Class) ~ .,
data = training,
method = "glmStepAIC", # glmstepaic
trControl = fitControl,
metric = "ROC",
trace = FALSE)
# 最终模型摘要分析
summary(glmstep_mod$finalModel)
# 实现特征选择的最终模型
final_model <- glmstep_mod$finalModel
想加入R语言圈子的朋友,请按着如下操作:
-
第一步,添加我的个人微信:luqin360,备注:实名-专业或者工作;
-
第二步:即可获取。
关于交叉验证的特征选择,你有什么问题或者想法,请留言。或者添加我的微信luqin360,备注实名+专业or工作,深入交流。
我的视频号:王路情微信视频号,分享我对数据的认知,请关注。
PDFMV框架系列文章

请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!