我正在阅读插入文档这里。
我过去曾使用cv方法进行交叉验证,但在这种情况下,我想使用90%的简单训练和10%的支持进行测试。
我想我可以做折叠=1,但不知道是否有一种指定的方法在插入符号中这样做?
在文档中,trainControl()中的方法可用的参数如下:
重采样方法: boot、boot632、cv、repeatedcv、LOOCV、LGOCV (用于重复训练/测试拆分)、to (只适合于整个训练集的一个模型)、oob (仅适用于随机森林、套袋树木、袋装土、套袋灵活判别分析或条件树林模型)、"adaptive_cv“、"adaptive_boot”或"adaptive_LGOCV“。
但我不知道这些是什么意思。也许其中一个会是我需要的人?
发布于 2019-03-19 09:49:01
一种解决方案是在caret之外创建训练/测试拆分,并使用trainControl的index参数使caret使用这些数据分区。
这需要列一张列有火车索引向量的清单。这样的对象很容易通过使用caret::createDataPartition()函数来创建。
library(caret)
library(MASS)
set.seed(1234)
# create four 50/50 partitions
parts <- createDataPartition(Boston$medv, times = 4, p = 0.5)
ctrl <- trainControl(method = "repeatedcv",
## The method doesn't matter
## since we are defining the resamples
index= parts,
savePredictions = TRUE
)
res <- train(medv ~ indus + chas, data = Boston, method = "lm",
trControl = ctrl)
res注意,createDataPartition创建了在结果变量上分层的分块。最后,我创建了自己的数据分区函数来创建真正的随机分区。这是为了教学目的。我的印象是,对结果进行分层抽样实际上总是比随机抽样更可取。
https://stackoverflow.com/questions/54697926
复制相似问题