【发布时间】:2019-03-20 10:32:21
【问题描述】:
我想为下面的数据框创建千斤顶数据分区,这些分区将在caret::train 中使用(如caret::groupKFold() 产生的)。但是,问题是我想将测试点限制为大于 16 天,同时使用这些数据的其余部分作为训练集。
df <- data.frame(Effect = seq(from = 0.05, to = 1, by = 0.05),
Time = seq(1:20))
我想这样做的原因是,我只对模型预测上限的能力真正感兴趣,因为这是感兴趣的区域。我觉得有一种方法可以使用 caret::groupKFold() 函数来做到这一点,但我不确定如何。任何帮助将不胜感激。
每个 CV 折叠包含的内容示例:
TrainSet1 <- subset(df, Time != 16)
TestSet1 <- subset(df, Time == 16)
TrainSet2 <- subset(df, Time != 17)
TestSet2 <- subset(df, Time == 17)
TrainSet3 <- subset(df, Time != 18)
TestSet3 <- subset(df, Time == 18)
TrainSet4 <- subset(df, Time != 19)
TestSet4 <- subset(df, Time == 19)
TrainSet5 <- subset(df, Time != 20)
TestSet5 <- subset(df, Time == 20)
尽管采用caret::groupKFold 函数输出的格式,以便可以将折叠输入caret::train 函数:
CVFolds <- caret::groupKFold(df$Time)
CVFolds
提前致谢!
【问题讨论】:
-
我不清楚你到底想做什么。您能否在发布的数据上展示测试折叠(预期结果)的示例?
-
抱歉,感谢您的建议!请参阅上面的编辑!
标签: r cross-validation r-caret data-partitioning