首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种仅为90%和10%拆分而不是cv的trainControl方法?

是否有一种仅为90%和10%拆分而不是cv的trainControl方法?
EN

Stack Overflow用户
提问于 2019-02-14 19:40:20
回答 1查看 294关注 0票数 1

我正在阅读插入文档这里

我过去曾使用cv方法进行交叉验证,但在这种情况下,我想使用90%的简单训练和10%的支持进行测试。

我想我可以做折叠=1,但不知道是否有一种指定的方法在插入符号中这样做?

在文档中,trainControl()中的方法可用的参数如下:

重采样方法: boot、boot632、cv、repeatedcv、LOOCV、LGOCV (用于重复训练/测试拆分)、to (只适合于整个训练集的一个模型)、oob (仅适用于随机森林、套袋树木、袋装土、套袋灵活判别分析或条件树林模型)、"adaptive_cv“、"adaptive_boot”或"adaptive_LGOCV“。

但我不知道这些是什么意思。也许其中一个会是我需要的人?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-19 09:49:01

一种解决方案是在caret之外创建训练/测试拆分,并使用trainControlindex参数使caret使用这些数据分区。

这需要列一张列有火车索引向量的清单。这样的对象很容易通过使用caret::createDataPartition()函数来创建。

代码语言:javascript
复制
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创建了在结果变量上分层的分块。最后,我创建了自己的数据分区函数来创建真正的随机分区。这是为了教学目的。我的印象是,对结果进行分层抽样实际上总是比随机抽样更可取。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54697926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档