快速入门
拟合 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.

