%%capture
!pip install datasetsforecast
数据要求
数据集输入要求
在这个示例中,我们将讨论core.NeuralForecast
类的数据集输入要求。
core.NeuralForecast
方法作为全局模型运作,接收一组时间序列而不是单个序列。该类采用交叉学习技术来拟合灵活共享模型,例如神经网络,从而提高其泛化能力,如M4国际预测竞赛所示(Smyl 2019,Semenoglou 2021)。
您可以使用Google Colab通过GPU运行这些实验。
长格式
多重时间序列
将你的时间序列存储在长格式的pandas数据框中,即每一行代表特定序列和时间戳的一个观测值。让我们使用 datasetsforecast
库看一个例子。
Y_df = pd.concat( [series1, series2, ...])
import pandas as pd
from datasetsforecast.m3 import M3
*_ = M3.load('./data', group='Yearly')
Y_df,
100%|██████████| 1.76M/1.76M [00:00<00:00, 5.55MiB/s]
INFO:datasetsforecast.utils:Successfully downloaded M3C.xls, 1757696, bytes.
'unique_id').head(2) Y_df.groupby(
unique_id | ds | y | |
---|---|---|---|
0 | Y1 | 1975-12-31 | 940.66 |
1 | Y1 | 1976-12-31 | 1084.86 |
20 | Y10 | 1975-12-31 | 2160.04 |
21 | Y10 | 1976-12-31 | 2553.48 |
40 | Y100 | 1975-12-31 | 1424.70 |
... | ... | ... | ... |
18260 | Y97 | 1976-12-31 | 1618.91 |
18279 | Y98 | 1975-12-31 | 1164.97 |
18280 | Y98 | 1976-12-31 | 1277.87 |
18299 | Y99 | 1975-12-31 | 1870.00 |
18300 | Y99 | 1976-12-31 | 1307.20 |
1290 rows × 3 columns
'unique_id').tail(2) Y_df.groupby(
unique_id | ds | y | |
---|---|---|---|
18 | Y1 | 1993-12-31 | 8407.84 |
19 | Y1 | 1994-12-31 | 9156.01 |
38 | Y10 | 1993-12-31 | 3187.00 |
39 | Y10 | 1994-12-31 | 3058.00 |
58 | Y100 | 1993-12-31 | 3539.00 |
... | ... | ... | ... |
18278 | Y97 | 1994-12-31 | 4507.00 |
18297 | Y98 | 1993-12-31 | 1801.00 |
18298 | Y98 | 1994-12-31 | 1710.00 |
18317 | Y99 | 1993-12-31 | 2379.30 |
18318 | Y99 | 1994-12-31 | 2723.00 |
1290 rows × 3 columns
Y_df
是一个数据框,包含三列:unique_id
,为每个时间序列提供唯一标识符;一列 ds
,包含日期戳;以及一列 y
,包含序列的值。
单一时间序列
如果您只有一个时间序列,则必须包含 unique_id
列。例如,考虑 AirPassengers 数据集。
= pd.read_csv('https://raw.githubusercontent.com/Nixtla/transfer-learning-time-series/main/datasets/air_passengers.csv') Y_df
在这个例子中,Y_df
只包含两列:timestamp
和 value
。要使用 NeuralForecast
,我们必须包含 unique_id
列并重命名之前的列。
'unique_id'] = 1. # 我们可以添加一个整数作为标识符。
Y_df[= Y_df.rename(columns={'timestamp': 'ds', 'value': 'y'})
Y_df = Y_df[['unique_id', 'ds', 'y']] Y_df
Y_df
unique_id | ds | y | |
---|---|---|---|
0 | 1.0 | 1949-01-01 | 112 |
1 | 1.0 | 1949-02-01 | 118 |
2 | 1.0 | 1949-03-01 | 132 |
3 | 1.0 | 1949-04-01 | 129 |
4 | 1.0 | 1949-05-01 | 121 |
... | ... | ... | ... |
139 | 1.0 | 1960-08-01 | 606 |
140 | 1.0 | 1960-09-01 | 508 |
141 | 1.0 | 1960-10-01 | 461 |
142 | 1.0 | 1960-11-01 | 390 |
143 | 1.0 | 1960-12-01 | 432 |
144 rows × 3 columns
参考文献
Give us a ⭐ on Github