使用插入符号中的时间分割及其参数,如何使用xyz行拆分数据,每行的长度为12?
理想情况下,还要考虑60-20-20火车测试-验证比率。
我应该这样设置吗:
initialWindow = 12,horizon = 12,fixedWindow = TRUE?
我已经阅读了文档,但是对我来说仍然不清楚。
您可以使用样例向量尝试发生的情况1:100
。如果进行设置window = 12
,fixedWindow = T
则训练集将始终有12行。horizon
指定将包含在测试集中的后续观察值的大小。如果将其设置为12,并且您不希望多次预测任何行,则必须skip
将其设置为(horizon-1)。
例如,可以通过将前20%initialWindow
的大小设置为60%,然后在前半部分运行模型,slices
然后将后半部分slices
用作最后20%,来实现60-20-20的分区。
我不知道您是否已经尝试在插入符号的train
功能中使用时间片。无论如何,您都可以使用createTimeSlices()
函数尝试不同的设置:
library(caret) dat <- 1:100 slices <- createTimeSlices(dat, initialWindow = 12, horizon = 1, skip = 0, fixedWindow = T) slices # 88 test and train sets # [...] slices <- createTimeSlices(y = dat, initialWindow = 12, horizon = 12, skip = 11, fixedWindow = T) slices # 7 test and train sets, observations 97 - 100 not in any test set $train $train$Training01 [1] 1 2 3 4 5 6 7 8 9 10 11 12 $train$Training13 [1] 13 14 15 16 17 18 19 20 21 22 23 24 $train$Training25 [1] 25 26 27 28 29 30 31 32 33 34 35 36 $train$Training37 [1] 37 38 39 40 41 42 43 44 45 46 47 48 $train$Training49 [1] 49 50 51 52 53 54 55 56 57 58 59 60 $train$Training61 [1] 61 62 63 64 65 66 67 68 69 70 71 72 $train$Training73 [1] 73 74 75 76 77 78 79 80 81 82 83 84 $test $test$Testing01 [1] 13 14 15 16 17 18 19 20 21 22 23 24 $test$Testing13 [1] 25 26 27 28 29 30 31 32 33 34 35 36 $test$Testing25 [1] 37 38 39 40 41 42 43 44 45 46 47 48 $test$Testing37 [1] 49 50 51 52 53 54 55 56 57 58 59 60 $test$Testing49 [1] 61 62 63 64 65 66 67 68 69 70 71 72 $test$Testing61 [1] 73 74 75 76 77 78 79 80 81 82 83 84 $test$Testing73 [1] 85 86 87 88 89 90 91 92 93 94 95 96