我正在 Jupyter Notebook 中训练DeepAR模型 ( arXiv )。我正在关注本教程。
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 错误,如此处所示。