脱字符平均预测值

问题描述 投票:0回答:1

我想使用R中的插入号来获得CV重复的平均预测值。

require("caret")
data("iris")
fitControl <- trainControl(method = "repeatedcv",   
                             number = 10,
                             repeats = 10, savePredictions = 'final')
model.cv <- train(Sepal.Length ~ Sepal.Width,
                    data = iris,
                    method = "lm", 
                    trControl = fitControl)

head(model.cv$pred)
#  intercept     pred obs rowIndex     Resample
#1      TRUE 5.809386 4.7        3 Fold01.Rep01
#2      TRUE 5.838487 4.6        4 Fold01.Rep01
#3      TRUE 5.460174 5.7       16 Fold01.Rep01
#4      TRUE 5.634780 5.7       19 Fold01.Rep01
#5      TRUE 5.722083 5.2       28 Fold01.Rep01
#6      TRUE 6.071295 4.5       42 Fold01.Rep01

现在,我想获得每个示例的所有10个预测的平均值。我可以通过以下示例进行迭代,但我认为必须有一种更好的整理方法。

mean(model.cv$pred[model.cv$pred$rowIndex==1, "pred"])
#[1] 5.745675
r cross-validation r-caret data-wrangling
1个回答
0
投票

一种方法(尽管仍然在每个示例上进行迭代):

sapply(
  X = unique(model.cv$pred$rowIndex), 
  FUN = function(x){mean(model.cv$pred$pred[model.cv$pred$rowIndex %in% x])}
)
© www.soinside.com 2019 - 2024. All rights reserved.