操作指南
迁移学习
迁移学习是指在一个大型数据集上预训练一个灵活的模型,然后在其他数据上进行少量甚至无需训练即可使用。它是机器学习中最杰出的成就之一 🚀,具有许多实际应用。
对于时间序列预测,该技术使您能够获得闪电般快速的预测 ⚡,从而绕开了准确性和速度之间的权衡(对于相似的准确性,比我们已经很快的 AutoARIMA 快 30 多倍)。
本 notebook 展示了如何生成一个预训练模型,用于预测模型从未见过的新时间序列。
目录
- 安装 MLForecast
- 加载 M3 月度数据
- 实例化 NeuralForecast 核心,拟合并保存
- 使用预训练模型预测 AirPassengers
- 评估结果
您可以使用 Google Colab 运行这些实验。
安装库
加载 M3 数据
M3 类将自动下载并处理完整的 M3 数据集。
它返回三个 Dataframe:Y_df 包含目标变量的值,X_df 包含外部日历特征,S_df 包含每个时间序列的静态特征。在此示例中,我们只使用 Y_df。
如果您想使用自己的数据,只需替换 Y_df。请确保使用长格式并具有与我们数据集相似的结构。
在本教程中,我们仅使用 1_000 个时间序列来加速计算。移除过滤器以使用整个数据集。
模型训练
使用 MLForecast.fit 方法,您可以在您的数据集上训练一组模型。您可以修改模型的超参数以获得更好的准确性,在此示例中,我们将使用 lgb.LGBMRegressor 的默认超参数。
MLForecast 对象具有以下参数
- models:一个包含类似 sklearn 模型(具有- fit和- predict方法)的列表。
- freq:一个字符串,表示数据的频率。请参阅 pandas 可用的频率别名。
- differences:在计算特征之前对目标进行的差分。这些在预测步骤中会被恢复。
- lags:用作特征的目标变量的滞后项。
在此示例中,我们仅使用 differences 和 lags 来生成特征。请参阅 完整文档 以查看所有可用特征。
任何设置都会传递给构造函数。然后,您调用其 fit 方法并传入历史数据框 Y_df_M3。
将 M3 迁移到 AirPassengers
现在我们可以使用 MLForecast.predict 方法将训练好的模型迁移到预测 AirPassengers,我们只需将新的数据框传递给 new_data 参数。
| unique_id | ds | LGBMRegressor | |
|---|---|---|---|
| 0 | AirPassengers | 1960-01-01 | 422.740096 | 
| 1 | AirPassengers | 1960-02-01 | 399.480193 | 
| 2 | AirPassengers | 1960-03-01 | 458.220289 | 
| 3 | AirPassengers | 1960-04-01 | 442.960385 | 
| 4 | AirPassengers | 1960-05-01 | 461.700482 | 
评估结果
我们使用平均绝对误差 (mae) 评估预训练模型的预测。

