Я хочу создать разделы данных складного ножа для фрейма данных ниже, с разделами, которые будут использоваться в caret::train
(например, caret::groupKFold()
производит). Однако загвоздка в том, что я хочу ограничить тестовые точки, чтобы они говорили больше, чем 16 дней, при этом используя оставшуюся часть этих данных в качестве обучающего набора.
df <- data.frame(Effect = seq(from = 0.05, to = 1, by = 0.05),
Time = seq(1:20))
Причина, по которой я хочу это сделать, заключается в том, что меня действительно интересует только то, насколько хорошо модель предсказывает верхнюю границу, поскольку это область интереса. Я чувствую, что есть способ сделать это с помощью функции caret::groupKFold()
, но я не уверен, как это сделать. Любая помощь будет принята с благодарностью.
Пример того, что будет включать каждое резюме:
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
Заранее спасибо!
caret::groupKfold(data$Time)
. Заранее спасибо! 19.11.2018unlist
вызов карты. Отметьте редактировать. 19.11.2018df <- data.frame(Effect = rep(seq(from = 0.05, to = 1, by = 0.05), each = 5), Time = rep(seq(1:20), each = 5))
. Есть ли способ адаптировать ваш код, чтобы брать каждую временную точку в верхней границе (скажем, ›15) и создавать складку из каждой строки? Т.е. каждая временная точка в верхней скобке используется как тестовый набор один раз, а все остальные данные используются для обучения. 20.11.2018