我正在学习如何在R中实现逻辑回归。
我已经拿到了一个数据集,并将其分成了训练集和测试集。希望使用交叉验证来实现前向选择、后向选择和最佳子集选择,以选择最佳特征。
我正在使用caret
在训练数据集上实现交叉验证,然后在测试数据上测试预测结果。
我看过caret
中的rfe
控制并查看了网站上的文档,还关注了这个问题的链接How to use wrapper feature selection with algorithms in R?。但我不知道如何更改特征选择的类型,因为它似乎默认为后向选择。有谁可以帮助我完善我的工作流程。下面是一个可重现的示例:
library("caret")
# Create an Example Dataset from German Credit Card Dataset
mydf <- GermanCredit
# Create Train and Test Sets 80/20 split
trainIndex <- createDataPartition(mydf$Class, p = .8,
list = FALSE,
times = 1)
train <- mydf[ trainIndex,]
test <- mydf[-trainIndex,]
ctrl <- trainControl(method = "repeatedcv",
number = 10,
savePredictions = TRUE)
mod_fit <- train(Class~., data=train,
method="glm",
family="binomial",
trControl = ctrl,
tuneLength = 5)
# Check out Variable Importance
varImp(mod_fit)
summary(mod_fit)
# Test the new model on new and unseen Data for reproducibility
pred = predict(mod_fit, newdata=test)
accuracy <- table(pred, test$Class)
sum(diag(accuracy))/sum(accuracy)