操作指南
迁移学习
迁移学习是指在一个大型数据集上预训练一个灵活的模型,然后在其他数据上进行少量甚至无需训练即可使用。它是机器学习中最杰出的成就之一 🚀,具有许多实际应用。
对于时间序列预测,该技术使您能够获得闪电般快速的预测 ⚡,从而绕开了准确性和速度之间的权衡(对于相似的准确性,比我们已经很快的 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
) 评估预训练模型的预测。