我在R中使用caret包拟合了套索逻辑回归模型。我的代码如下,
require(ISLR)
require(caret)
set.seed(123)
fitControl <- trainControl(method = "cv",number = 5,savePredictions = T,classProbs=TRUE)
mod_fitg <- train(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Volume,
data=Smarket[1:100,], method = "glmnet",
trControl = fitControl,
tuneGrid=expand.grid(
.alpha=1,
.lambda=10^seq(-5, 5, length =2)),
family="binomial")
当我提取预测值时,它将仅显示预测类(在pred列下),
mod_fitg$pred
是否有一种方法可以提取预测的概率而不是预测的类别?我需要以某种方式基于交叉验证来获得预测的概率。
谢谢
答案 0 :(得分:1)
我相信您的预测概率在Down
和Up
列下。该模型为许多观察提供了均匀的机会,并且在这种情况下似乎服从Up
。但是,列表下方还有其他变化。 mod_fit$pred
是一个数据框,您可以直接提取值:
pre_prob <- mod_fitg$pred[3:5]
pre_prob
#output- keeping index if we care about a certain observation
rowIndex Down Up
1 4 0.5000000 0.5000000
2 8 0.5000000 0.5000000