【发布时间】:2018-06-16 23:29:15
【问题描述】:
我想使用caret 进行自定义采样。我的规格如下:
我每天有 1 次观察,我的分组因子是月份(12 个值);因此,在第一步中,我创建了 12 个重采样,训练时间为 11 个月(11*30 点),测试时间为 1 个月(30 点)。这样我总共得到 12 个重采样。
但这对我来说还不够,我想通过为每个分区的训练点添加一些引导来使其更复杂一些。因此,不是在 Resample01 中有 11*30 个点,而是对这 330 个点进行几个自举重采样。 所以最后,我想要很多重采样,但其中一个月份 NEVER 在训练集中。
如何在对train 的调用中指定这一点?
我尝试了什么:
library(caret)
x = rep(1:12, each=30)
folds = groupKFold(x, k=12)
folds2 = lapply(folds, createResample, times=10)
但这是错误的,因为 1/ 我得到了一个嵌套列表,2/ 初始索引在第二步中丢失了。
感谢您的帮助(如果您认为这是 XY pb,请随时告诉我)
【问题讨论】:
-
我最初建议
purrr::map_df(folds, createResample, times = 10, .id = "id"),但这不适用于caret::trainControl() -
@Phil 谢谢你的帮助,我很高兴发现这个
map函数
标签: r cross-validation r-caret