1

我有一个数据集,并且希望插入符号仅在我的数据集的特定部分上进行训练和验证。我有两个清单

train.ids <- list(T1=c(1,2,3), T2=c(4,5,6), T3=c(7,8,9))

test.ids <- list(T1=c(10,11,12), T2=c(13,14,15), T3=(16,17,18))

对应于我的数据集中的行索引。train.ids$T1应该用于训练,而test.ids$T1应该用于测试。T2 和 T3 也是如此。

我尝试使用

trainControl(method="cv", index=train.ids, indexOut=test.ids)

但这似乎不是使用 trainControl 的正确方法。

非常感谢任何帮助

4

1 回答 1

3

是否产生了错误?我不确定为什么这行不通。这是一个例子:

library(caret)

## A small data set example
set.seed(2)
dat <- twoClassSim(9)[, 13: 16]

fit_on <-  list(rs1 = 1:3, rs2 = 4:6,         rs3 = 7:9)
pred_on <- list(rs1 = 4:9, rs2 = c(1:3, 7:9), rs3 = 1:6)

ctrl <- trainControl(method = "cv", 
                     ## The method doesn't really matter
                     ## since we are defining the resamples
                     index= fit_on, indexOut = pred_on,
                     verboseIter = TRUE,
                     savePredictions = TRUE)

mod <- train(Class ~ ., data = dat, method = "lda",
             trControl = ctrl)

看一下mod$pred,您可以看到每次迭代的预测结果。

最大限度

于 2014-04-30T01:54:32.170 回答