数据要求

数据集输入要求

在这个示例中,我们将讨论core.NeuralForecast类的数据集输入要求。

core.NeuralForecast方法作为全局模型运作,接收一组时间序列而不是单个序列。该类采用交叉学习技术来拟合灵活共享模型,例如神经网络,从而提高其泛化能力,如M4国际预测竞赛所示(Smyl 2019,Semenoglou 2021)。

您可以使用Google Colab通过GPU运行这些实验。

在Colab中打开

长格式

多重时间序列

将你的时间序列存储在长格式的pandas数据框中,即每一行代表特定序列和时间戳的一个观测值。让我们使用 datasetsforecast 库看一个例子。

Y_df = pd.concat( [series1, series2, ...])

%%capture
!pip install datasetsforecast
import pandas as pd
from datasetsforecast.m3 import M3
Y_df, *_ = M3.load('./data', group='Yearly')
100%|██████████| 1.76M/1.76M [00:00<00:00, 5.55MiB/s]
INFO:datasetsforecast.utils:Successfully downloaded M3C.xls, 1757696, bytes.
Y_df.groupby('unique_id').head(2)
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

Y_df.groupby('unique_id').tail(2)
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 数据集。

Y_df = pd.read_csv('https://raw.githubusercontent.com/Nixtla/transfer-learning-time-series/main/datasets/air_passengers.csv')

在这个例子中,Y_df 只包含两列:timestampvalue。要使用 NeuralForecast,我们必须包含 unique_id 列并重命名之前的列。

Y_df['unique_id'] = 1. # 我们可以添加一个整数作为标识符。
Y_df = Y_df.rename(columns={'timestamp': 'ds', 'value': 'y'})
Y_df = Y_df[['unique_id', 'ds', 'y']]
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