XGBoost использует 3-мерный ввод, содержащий временные шаги в Python? - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь обучить XGBRegressor для данных временных рядов, измененных, чтобы иметь временные шаги, поэтому результирующая форма X_train может быть чем-то вроде (12345, 5, 10), если есть 12345 выборок, 10 объектов и временной шаг 5.

Однако, когда мы пытаемся обучить XGBRegressor с использованием таких обучающих данных,

import xgboost as xgb
xgb = xgb.XGBRegressor()
xgbr.fit(X_train, y_train)

мы получаем ошибку

ValueError: (' Ожидая 2-мерное numpy .ndarray, получил: ', (12345, 5, 10))

Как правильно обучить XGBRegressor на данных обучения, содержащих временные шаги?

1 Ответ

1 голос
/ 01 мая 2020

Как видно из ошибки, вы не можете напрямую установить и XGBRegressor с массивом в форме 3D. Возвращение к ML для проблемы временных рядов является довольно распространенным явлением, хотя вы должны убедиться, что вы предоставляете значимые функции регрессора, которые фиксируют временную зависимость между выборками.

Так что вы могли бы начать для вашей конкретной задачи, это создать новую функцию, указывающую, к какому временному шагу относится образец. Таким образом, деревья решений также узнают, как переменная, зависящая от времени, влияет на целевую переменную. Хотя чем больше значимых функций вы можете добавить, тем лучше, так что вы также можете рассмотреть возможность включения других возможных статистических данных, зависящих от времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...