快速入门
拟合 LSTM 和 NHITS 模型
本 notebook 提供了一个示例,展示了如何开始使用 NeuralForecast 库的主要功能。NeuralForecast
类允许用户轻松地与 NeuralForecast.models
中的 PyTorch 模型交互。在本例中,我们将使用经典的 LSTM
和最新的 NHITS
模型来预测 AirPassengers 数据。可用模型的完整列表可在此处找到。
您可以使用 Google Colab 在 GPU 上运行这些实验。
1. 安装 NeuralForecast
2. 加载 AirPassengers 数据
core.NeuralForecast
类包含共享的 fit
、predict
和其他方法,这些方法接受包含 ['unique_id', 'ds', 'y']
列的 pandas DataFrame 作为输入,其中 unique_id
标识数据集中的各个时间序列,ds
是日期,y
是目标变量。
在本例中,数据集包含单个序列,但您可以轻松地将模型拟合到长格式的更大数据集。
unique_id | ds | y | |
---|---|---|---|
0 | 1.0 | 1949-01-31 | 112.0 |
1 | 1.0 | 1949-02-28 | 118.0 |
2 | 1.0 | 1949-03-31 | 132.0 |
3 | 1.0 | 1949-04-30 | 129.0 |
4 | 1.0 | 1949-05-31 | 121.0 |
重要提示
DataFrame 必须包含所有
['unique_id', 'ds', 'y']
列。确保y
列没有缺失值或非数字值。
3. 模型训练
拟合模型
使用 NeuralForecast.fit
方法,您可以训练一组模型来适应您的数据集。您可以定义预测 horizon
(本例中为 12),并修改模型的超参数。例如,对于 LSTM
,我们更改了编码器和解码器的默认隐藏大小。
提示
深度学习模型的性能对超参数的选择非常敏感。调整正确的超参数是获得最佳预测的重要步骤。这些模型的
Auto
版本,即AutoLSTM
和AutoNHITS
,已经自动执行超参数选择。
使用拟合模型进行预测
使用 NeuralForecast.predict
方法,您可以在训练数据 Y_df
之后获得 h
个预测值。
NeuralForecast.predict
方法返回一个 DataFrame,其中包含每个 unique_id
、ds
和模型的预测值。
unique_id | ds | LSTM | NHITS | |
---|---|---|---|---|
0 | 1.0 | 1961-01-31 | 445.602112 | 447.531281 |
1 | 1.0 | 1961-02-28 | 431.253510 | 439.081024 |
2 | 1.0 | 1961-03-31 | 456.301270 | 481.924194 |
3 | 1.0 | 1961-04-30 | 508.149750 | 501.501343 |
4 | 1.0 | 1961-05-31 | 524.903870 | 514.664551 |
4. 绘制预测结果
最后,我们绘制了两个模型的预测结果与实际值进行对比。
提示
在本指南中,我们使用了简单的
LSTM
模型。更先进的模型,如TSMixer
、TFT
和NHITS
,在大多数情况下都比LSTM
具有更高的准确性。可用模型的完整列表可在此处找到。
参考文献
- Boris N. Oreshkin, Dmitri Carpov, Nicolas Chapados, Yoshua Bengio (2020). “N-BEATS: Neural basis expansion analysis for interpretable time series forecasting”. International Conference on Learning Representations.
- Cristian Challu, Kin G. Olivares, Boris N. Oreshkin, Federico Garza, Max Mergenthaler-Canseco, Artur Dubrawski (2021). NHITS: Neural Hierarchical Interpolation for Time Series Forecasting. Accepted at AAAI 2023.