我想使用递归特征消除方法来选择最重要的特征,然后将这些特征放入机器学习模型中。我编写的RFE代码如下:
library(mlbench)library(caret)control <- rfeControl(functions=rfFuncs, method="cv", number=10)results <- rfe(train[,1:134], train[,135], sizes=c(1:134),rfeControl=control)print(results)predictors(results)
然后代码给出的最重要特征是:[1] “a” “b” “c” “d” “e”,最后我将这些特征放入模型中:
weighted_fit <- train(x ~ a+b+c+d,data = train,method = 'glmnet',trControl = ctrl)
我的问题是,每次RFE给出最重要特征如[1] “a” “b” “c” “d” “e”时,我都需要手动编辑它们为a+b+c+d,然后放入模型中,然而,当选择了50个最重要特征时,手动编辑并放入模型是不现实的,有没有自动完成这个过程的方法?我非常感谢您的建议。
回答:
你要找的是不是help("update")
?
x <- rnorm(10)a <- 1:10b <- 11:20c <- 21:30d <- rnorm(10)fmla <- x ~ aupdate(fmla, "~b")#x ~ bnew <- c("b", "c", "d")update(fmla, paste("~", paste(new, collapse = "+")))#x ~ b + c + d