原文:
www.kdnuggets.com/2018/11/sales-forecasting-using-prophet.html
销售预测是许多以销售为驱动的组织中最常见的任务之一。这项活动使组织能够以一定的信心充分规划未来。在本教程中,我们将使用 Prophet,这是 Facebook 开发的一个包,展示如何实现这一点。此包在 Python 和 R 中均可用。我们假设读者对在 Python 中处理 时间序列 数据有基本的理解。
-
介绍与安装
-
模型拟合
-
未来预测
-
获取预测
-
绘制预测
-
绘制预测组件
-
交叉验证
-
获取性能指标
-
可视化性能指标
-
结论
有很多开源预测工具,但没有一种能够解决所有预测问题。Prophet 最适合处理几个月的每小时和每周数据。使用 Prophet 时,年度数据是最理想的。根据 Facebook 研究:
从根本上说,Prophet 程序是一个 加性回归模型,具有四个主要组件:
1. 分段线性或逻辑增长曲线趋势。Prophet 通过从数据中选择变化点来自动检测趋势变化。
2. 使用 傅里叶级数 建模的年度季节性组件。
3. 使用虚拟变量的每周季节性组件。
4. 用户提供的重要节假日列表。
可以使用 pip 在 Python 中安装 Prophet,如下所示。Prophet 依赖于名为 pystan.
的 Python 模块。我们在安装 Prophet 时,此模块将自动安装。
我们在本教程中使用的数据集可以在这里下载。一旦下载数据集,请确保删除文件末尾的一些不必要的行,因为它们可能会干扰分析。对于这个单变量分析Prophet 期望数据集包含两列,分别命名为ds和y。ds是日期列,而y是我们进行预测的列。
让我们开始导入 Pandas 进行数据处理,以及 Prophet 进行预测。接下来,我们加载数据集并查看其头部。
由于我们之前使用过Scikit-learn,因此使用 Prophet 对我们来说将是一件轻而易举的事。这是因为 Prophet 和 Scikit-learn 的 API 实现非常相似,如下所示。我们首先创建一个 Prophet 类的实例,然后将其拟合到我们的数据集上。
下一步是准备我们的模型进行未来预测。这可以通过使用Prophet.make_future_dataframe方法并传入我们希望预测的天数来实现。我们使用periods属性来指定这个值。这还包括历史日期。我们将使用这些历史日期将预测值与ds列中的实际值进行比较。
我们使用predict方法来进行未来的预测。这将生成一个包含yhat列的数据框,该列将包含预测结果。
如果我们查看预测数据框的head,会发现它有很多列。然而,我们主要关注ds, yhat, yhat_lower和yhat_upper。yhat*是我们的预测值,yhat_lower是我们预测的下限,yhat_upper是我们预测的上限。
让我们继续查看预测数据框的尾部和头部。
Prophet 具有一个内置功能,允许我们绘制刚刚生成的预测结果。这可以通过使用*mode.plot()*方法并将我们的预测结果作为参数传递来实现。图中的蓝线表示预测值,而黑点表示我们数据集中的数据。
plot_components 方法绘制了时间序列数据的趋势、年度和每周季节性。
接下来,让我们使用历史数据测量预测误差。我们将通过将预测值与实际值进行比较来完成此操作。为了执行此操作,我们选择数据历史中的截止点,并用该截止点之前的数据拟合模型。然后,我们将实际值与预测值进行比较。交叉验证方法允许我们在 Prophet 中执行此操作。此方法使用以下参数,如下所述:
-
预测范围预测范围
-
初始初始训练期的大小
-
周期截止日期之间的间隔
交叉验证方法的输出是一个数据框,其中包含y真实值和yhat预测值。我们将使用此数据框来计算预测误差。
我们使用performance_metrics工具计算均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)、平均绝对百分比误差(MAPE)以及yhat_lower
和yhat_upper
估计值的覆盖率。
性能指标可以使用plot_cross_validation_metric工具进行可视化。让我们下面可视化 RMSE。
正如我们所见,Prophet 在时间序列预测中非常强大和有效。然而,正如我们之前提到的,还有一些其他预测工具。工具的选择是基于数据集的性质逐案决定的。人们可以始终比较这些工具,并使用那些能提供最佳预测且误差最小的工具。这些方法包括ARIMA、Holt-Winters 方法、Holt 的线性趋势、简单指数平滑和移动平均等。您可以从官方文档或阅读Prophet 论文了解更多关于 Prophet 的信息。
简介:Derrick Mwiti 是一名数据分析师、作家和导师。他致力于在每个任务中取得优异成果,并且是 Lapid Leaders Africa 的导师。
相关内容:
-
使用 Keras 长短期记忆(LSTM)模型预测股票价格
-
Keras 深度学习入门
-
PyTorch 深度学习入门
1. Google 网络安全证书 - 快速进入网络安全职业道路。
2. Google 数据分析专业证书 - 提升您的数据分析能力
3. Google IT 支持专业证书 - 支持您组织的 IT 工作