【R语言】随机森林递归特征消除

**数据说明:**1-22个自变量X,23为因变量Y
参考https://www.jianshu.com/p/3ce79b6f371a
https://blog.csdn.net/jiabiao1602/article/details/44975741

library(mlbench)
library(caret)
#读取数据
data<- read.csv("D:test.csv")
#转换Y,转为分类问题
data$Y<-as.factor(data$Y)
#随机数种子,可随便设置(即选样本时的间隔)
set.seed(11)
# funtions是做随机森林的回归
control <- rfeControl(functions=rfFuncs, method="cv",verbose = FALSE, returnResamp = "final")
#[1:22]即22个因子所在列,[,23]即Y,c(1:22)即递归留下的变量从1留到22
results <- rfe(data[,1:22],data[,23], sizes=c(1:22), rfeControl=control)
# 输出结果
print(results)
# 列出筛选出的变量
predictors(results)
# 画出曲线
plot(results, type=c("g", "o"))

你可能感兴趣的:(【R语言】随机森林递归特征消除)