【发布时间】:2015-08-18 00:11:32
【问题描述】:
我有一些类似的数据:
data(Titanic) # need one row per passenger
df <- data.frame(Titanic, stringsAsFactors=TRUE)
df <- df[rep(seq_len(nrow(df)), df[,"Freq"]), which(names(df)!="Freq")]
我在caret 中使用重复的交叉验证逻辑回归训练了一个模型,例如:
library(caret)
tc <- trainControl(method="repeatedcv", number=10, repeats=3,
returnData=TRUE, savePredictions=TRUE, classProbs=TRUE)
glmFit <- train(Survived ~ Class + Sex + Age, data = df, weights=Freq,
method="glm", family="binomial",
trControl = tc)
summary(glmFit)
我想获得平均样本内拟合概率和样本外预测概率(数据框中每一行的平均值分别为 27 和 3 个值,在这种情况下,因为它是 10 倍 CV x 3 次重复)。
我想将每一行的平均样本内和样本外概率估计附加到数据框上——看起来像以下两列:
>df_appended
| Class | Sex | Age | Survived | training_p_surv_est | testing_p_surv_est |
3rd M Child 0 .251 .259
3rd M Child 1 .251 .259
2nd M Child 1 .324 .319
2nd M Child 0 .324 .319
根据?trainControl,我已使用savePredictions=TRUE 保存了每次重采样的保留预测。 (还有classProbs=TRUE,因为我想要原始概率,而不是类。)
如何访问样本内和样本外预测?看着?predict.train,我试过用
extractProb(list(glmFit))
#Error in eval(expr, envir, enclos) : object 'Class2nd' not found
非常感谢。
【问题讨论】:
标签: r prediction logistic-regression cross-validation r-caret