Обучение модели временных рядов DeepAR с ежемесячными данными. Можно тренироваться только ежедневно
Я модель обучаюDeepAR (arXiv ) в Jupyter Notebook. Я следую этому руководству.
Создаю коллекцию временных рядов (
concat_df
), как того требует метод DeepAR:
Каждая строка представляет собой временной ряд. Эта коллекция используется для обучения модели DeepAR. Формат ввода, ожидаемый DeepAr, - это список серий. Итак, я создаю это из приведенного выше фрейма данных:
time_series = []
for index, row in concat_df.iterrows():
time_series.append(row)
С помощью этого списка временных рядов я затем установил
freq
,
prediction_length
а также
context_length
(обратите внимание, что в этом первом примере я устанавливаю частоту Daily):
freq = "D"
prediction_length = 3
context_length = 3
...так же хорошо как
T-Naught
,
Data Length
,
Number of Time Series
а также
Period
:
t0 = concat_df.columns[0]
data_length = concat_df.shape[1]
num_ts = concat_df.shape[0]
period = 12
Создаю обучающий набор:
time_series_training = []
for ts in time_series:
time_series_training.append(ts[:-prediction_length])
..и визуализируйте это с помощью набора тестов:
time_series[0].plot(label="test")
time_series_training[0].plot(label="train", ls=":")
plt.legend()
plt.show()
Пока все хорошо, все, кажется, согласуется с руководством.
Затем я использую оставшийся код для вызова развернутой модели, как описано в указанной статье:
list_of_df = predictor.predict(time_series_training[:5], content_type="application/json")
НО, если я изменю периодичность на ежемесячную (
freq = "M"
) Я получаю следующую ошибку:
ValueError: Units 'M', 'Y', and 'y' are no longer supported, as they do not represent unambiguous timedelta values durations.
Почему не принимаются ежемесячные данные? Как я могу тренировать ежемесячные данные на DeepAR? Есть ли способ указать дневной эквивалент ежемесячных данных?
Похоже, это какая-то ошибка Pandas, как показано здесь .