使用 PyCaret 进行时间序列预测:构建多步预测模型

Time Series Forecasting with PyCaret: Building Multi-Step Prediction Model

使用 PyCaret 进行时间序列预测:构建多步预测模型
图片由 Editor | Midjourney & Canva 提供

熟悉时间序列预测

时间序列预测利用过去的信息来预测未来的数据,在金融、天气和库存等领域都很有用。准确的时间相关预测有助于企业做出更好的决策。

单步预测是指预测时间序列中的下一个值。此方法仅关注一个未来的时间点。多步预测是指预测未来多个时期(例如几周或几个月)的数值。有两种方法可以做到这一点:

  • 直接预测:为每个未来时间步长创建一个新模型。
  • 递归预测:模型使用过去的预测来预测下一个值。

多步预测在金融、供应链和天气预报等领域很有用。

什么是 PyCaret?

PyCaret 是一个 Python 工具,可以轻松进行预测。它自动化了机器学习工作流中的许多步骤,例如选择模型、特征工程和找到表现最佳的模型。PyCaret 可以帮助实现以下目标:

  • 易于使用:PyCaret 通过其简单的界面,可以轻松设置机器学习模型。
  • 全面的模型选择:PyCaret 提供许多时间序列模型,如 ARIMA、ETS 和 Prophet。
  • 自动特征工程:PyCaret 会创建有用的特征,例如过去的数据点和移动平均,以提高预测的准确性。
  • 模型调优和评估:PyCaret 通过调整设置和检查模型性能来帮助改进模型。

在本文中,我们将展示如何构建多步预测。多步预测意味着预测的不仅仅是下一个单一值。PyCaret 在数据、模型和结果检查方面提供帮助。我们将解释如何构建和改进您的预测模型。

在继续学习本文之前,您可能需要先阅读本系列的前 3 篇文章。

  1. 在 PyCaret 中构建自定义模型管道:从数据准备到生产
  2. PyCaret中的自动化特征工程
  3. 使用 PyCaret 创建强大的集成模型

在开始之前,请确保已安装 PyCaret。您可以使用 pip 进行安装。

准备数据

在本示例中,我们将使用航空公司乘客数据集。它显示了每月航空公司乘客数量。

Preparing the Data

这里,Month 列是时间索引。Passengers 列是我们想要预测的目标变量。

初始化 PyCaret

PyCaret 中的 setup() 函数会为您的数据准备建模。它会自动处理诸如检测趋势、填充缺失值和编码分类特征等任务。此步骤为时间序列预测设置了环境。

setup 中的关键参数包括:

  • data:时间序列数据。
  • target:我们想要预测的列的名称(Passengers)。
  • fh:预测范围(预测到多远);此处,我们预测未来 12 个月。

创建基线模型

基线模型是预测的起点,有助于评估更复杂的模型。PyCaret 提供 create_model() 来轻松构建一个。ETS(指数平滑)模型是时间序列数据的良好基线。它能够捕捉数据中的趋势和季节性。

Creating a Baseline Model

ETS 模型简单有效,适用于时间序列数据。

比较模型

PyCaret 拥有许多预测模型,您可以使用 compare_models() 来测试和比较它们。此函数根据模型的性能对模型进行排名。您可以按 MASE(平均绝对缩放误差)对模型进行排序,以帮助找到最佳模型。

Comparing Models

PyCaret 根据性能对模型进行排名。在其他条件相同的情况下,选择误差最小的模型以获得更好的预测。

调优模型

选择模型后,您可以通过微调其设置来提高其准确性。使用 tune_model() 函数来优化超参数。

tune_model

PyCaret 会自动调整模型的参数以获得更好的结果。

进行多步预测

在训练和调优模型后,下一步是进行多步预测。您可以使用 PyCaret 中的 predict_model() 函数来执行此操作。它有助于预测特定时间段的未来值。

Making Multi-Step Forecasts

这将生成一个包含以下内容的表格:

  • 历史预测:过去数据点的预测值。
  • 未来预测:未来 12 个月(或设定的范围)的预测。

可视化结果

可视化有助于理解模型性能。PyCaret 提供内置的绘图工具。

模型诊断

PyCaret 包含有用的诊断图来评估模型的性能。其中一个图是残差诊断图,显示模型残差。

Model Diagnostics

预测图

PyCaret 还允许您可视化预测。它显示实际值、预测值和未来预测。

Forecast Plots

导出和部署模型

模型准备就绪后,您可以保存它,以便将来无需重新训练即可再次使用。

保存模型

使用 save_model() 函数来保存模型。这将存储模型,以便您将来可以使用它。

加载模型

当您需要已保存的模型时,可以使用 load_model() 函数加载它。这将把模型重新加载到内存中。

结论

PyCaret 使时间序列预测变得简单快捷,只需几行代码即可帮助您构建多步预测模型。PyCaret 会自动处理数据清理和特征创建等任务,并提供许多您可以根据需要选择的预测模型。多步预测可帮助您随时间预测未来值,这对于规划和决策非常有用。借助 PyCaret,即使是初学者也能快速创建准确的模型,并立即从时间序列数据中获得见解。

暂无评论。

发表评论

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。