在 CARET 中为重复保留样本创建准确度度量向量

Create a vector of accuracy measures in CARET for repeated hold-out samples

我想根据通过重复保留样本(相同大小)创建的决策树创建一个准确度度量向量。我正在 CARET 中尝试这个。

library(caret)

ctrl <- trainControl(method = "LGOCV", 
                     repeats = 60, p=0.66)

mod1 <- train(Species ~ ., data = iris, 
              method = "rpart", 
              trControl = ctrl)

我现在的目标是从 60 次重复试验中的每一次试验中获取准确度度量向量。但不确定下一步该怎么做。

通过一次试验,我会使用 confusionMatrix()。但不确定在这种情况下该怎么做。

想法?

首先,对于 method = "LGOCV",请使用 number = 60 而不是 repeats

有一个名为 resamples 的子对象。

> ctrl <- trainControl(method = "LGOCV", 
+                      number = 60, p=0.66)
> 
> mod1 <- train(Species ~ ., data = iris, 
+               method = "rpart", 
+               trControl = ctrl)

> str(mod1$resample)
'data.frame':   60 obs. of  3 variables:
 $ Accuracy: num  0.902 0.961 0.922 0.922 0.941 ...
 $ Kappa   : num  0.853 0.941 0.882 0.882 0.912 ...
 $ Resample: chr  "Resample14" "Resample13" "Resample15" "Resample11" ...
> length(unique(mod1$resample$Resample))
[1] 60

参见 trainControl 中的选项 returnResamp。默认情况下,这会保存最佳模型的结果。您也可以为每个调整参数获取它们。

最大