首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡雷特交叉验证后,逐步选择。机制问题

卡雷特交叉验证后,逐步选择。机制问题
EN

Stack Overflow用户
提问于 2022-02-01 10:06:41
回答 1查看 546关注 0票数 0

说我有维数:

代码语言:javascript
复制
> dim(traindf)
[1] 5000   25

我想提取一个有用的logistic回归模型。为此,我使用了下面的插入符号代码,使用了10倍交叉验证的反向逐步选择。

代码语言:javascript
复制
trControl <- trainControl(method="cv", # K-folk Cross-validation
                          number = 10, # K = 10
                          savePredictions = T,
                          classProbs = T,
                          verboseIter = T,
                          summaryFunction = twoClassSummary)

caret_model <- train(Class~.,
                     traindf,
                     method="glmStepAIC", # Step wise AIC
                     family="binomial", # Logistic regression is specified
                     direction="backward", # Backward selection
                     trace = F,
                     trControl=trControl)

代码工作正常,它返回一个0.86 ROC的模型。

我的问题是这个算法是如何工作的。

我不确定,对于每个k变量的模型,逐步选择的是偏差最小的模型还是AIC?

2-算法是否交叉验证每个k变量的最佳模型,并从所有这些变量中输出最佳模型,还是仅仅交叉验证基于AIC的最佳模型的步骤选择?

EN

回答 1

Stack Overflow用户

发布于 2022-02-02 07:49:37

caret方法glmStepAIC内部调用MASS::stepAIC,因此您的第一个问题的答案是AIC用于变量的选择。

回答你的第二个问题。卡雷特按照你在trainControl中定义的那样划分数据,在你的例子中,这是10倍的简历。对10个训练集中的每一个进行glmStepAIC,选择基于AIC的最优模型,并利用该模型对各自的CV测试集进行预测。这些预测的平均性能在caret_model$results下报告。在此基础上,对所提供的数据进行glmStepAIC运行,并选择基于AIC的最优模型,将模型存储在caret_model$finalModel中,用于对新数据的预测。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70938683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档