GBM Emsemble из примера прогноза - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь создать ансамблевую модель GBM, которая создает прогноз на 15 дней вперед из ARIMA, случайного леса и модели TBATS. Каждая из этих трех моделей подбирается и затем прогнозируется отдельно с помощью экзогенных переменных (комбинация кривых sin / cos и индикаторных переменных). Когда у меня есть прогнозируемые значения, я создаю модель GBM, которая соответствует «Liftings» для 3 методов (почти так же, как работает многомерная регрессия). Смотрите ниже для этой модели; до этого происходит немало дополнительных настроек. Фрейм данных исходной модели (" Results ") содержал 564 строки.

gbm.final <- gbm(Results$Liftings ~ Results$ARIMA_fitted + Results$RF_Fit + Results$TBAT_Fit, 
                 data = Results, 
                 distribution = "laplace",
                 n.trees = optimal_trees,
                 interaction.depth = optimal_interaction,
                 shrinkage = optimal_shrinkage,
                 n.minobsinnode = optimal_minobsinnode,
                 bag.fraction = optimal_bags,
                 train.fraction = .75,
                 n.cores = NULL, # will use all cores by default
                 verbose = FALSE)

Я хочу взять исходную модель и подогнать прогнозы на 15 дней вперед для 3 методов. Фрейм данных для прогнозов имеет 15 строк. Данные приведены ниже (1-й раз проводка). [ARIMA / RF / TBATS Forecast DF] [1]

Prediction_1 <-  predict(
                 # the model from above
                 object = gbm.final , 
                 # the testing data
                 newdata = ResultsX, #matrix containing the same variables as above
                 type = "response")

Я неоднократно получаю следующую ошибку: Использование 28 деревьев ... Предупреждение: у 'newdata' было 15 строк, но у найденных переменных 564 строки

Я хочу подогнать прогноз к 15 прогнозам, но модель продолжает возвращаться к исходной матрице из 564 строк. Любые предложения приветствуются.

...