北京住房投资建设中心网站首页,采购管理软件免费版,上海今天新闻综合频道,除了 wordpress简介#xff1a;本文从零售业需求预测痛点、商店商品模型预测的实践演示#xff0c;介绍Databricks如何助力零售商进行需求、库存预测#xff0c;实现成本把控和营收增长。
作者#xff1a;李锦桂 阿里云开源大数据平台开发工程师
本文从零售业需求预测痛点、商店商品模型…简介本文从零售业需求预测痛点、商店商品模型预测的实践演示介绍Databricks如何助力零售商进行需求、库存预测实现成本把控和营收增长。
作者李锦桂 阿里云开源大数据平台开发工程师
本文从零售业需求预测痛点、商店商品模型预测的实践演示介绍Databricks如何助力零售商进行需求、库存预测实现成本把控和营收增长。
本文分为以下四部分
1.消费者需求预测对零售业的重要性
2.数据的准备与可视化
3.基于DDI建立预测单个商店-商品模型
4.将预测模型扩展到每个商店-商品的预测
一、消费者需求预测对零售业的重要性
首先需求预测对零售商至关重要。如果商店的商品过多货架和仓库的空间紧张产品容易过期财务资源被库存束缚。零售商无法利用制造商带来的新机会从而错过消费模式的转变。
由于商店内商品过少客户无法从上商店内买到需要的商品。不但会造成零售商的收入损失而且随着时间的推移消费者的失望情绪会驱使消费者转向竞争对手。
综上所述预测消费者需求的准确性和及时性对零售商非常重要。
二、数据的准备与可视化
下面我们使用零售数据模拟如何使用DDI的notebook和Facebook prophet来对消费者的需求进行建模和预测。
现在我们需要的数据已经上传到了OSS的Bucket里面接下来开始对消费者的需求进行建模和预测。当数据上传到OSS上之后可以在DDI的Notebook上对数据进行分析和建模。
本次使用的数据集是2012年到2017年10个商店中的50商品销售数据。数据包含四列。第一列是日期第二列是商店的ID1-10第三列是商品的ID1-50第四列是当日商品的销售量。
实验目的是预测未来三个月这些商品在各个商店的销量对商店未来的库存备货提供指导。
在默认配置下YARN分配的executor CPU为1corememory为2G为了让我们的分析更快一些我们可以适度调高分配的cpu核心数和分配的内存大小。 通常在读取大量CSV格式的数据之前会预先定义Schema。这项简单预处理可以免去Spark自动推测数据类型的繁重工作让Spark更加快速的读入数据。 定义Schema之后将训练数据读取到spark的DataFrame中。 读取DataFrame之后通过熟悉的SQL语句对数据进行分析可以使用dataframe的createOrReplaceTempView方法创建一个临时的视图。 创建view之后对dataframe中的数据进行分析。首先分析销售数据随年份的走势。从图表可以看出在过去几年商店的销售额稳步增长总体呈现线性增长的趋势。在预测下一年的销售额时可以参考过去几年的增长率。
三、基于DDI建立预测单个商店-商品模型
与此同时商品销售往往有很强的季节性特别是服装行业。T恤在夏季的销售额肯定高于羽绒服的销售额。因此在预测商品的销售额时季节性是不可忽略的因素。 如上图所示从2013年到2017年商品销量不断上涨。一年之中商品的销售额呈现很强的周期性。
在12月或1月时商品销量到达波谷随着月份不断攀升7月销量到达波峰。所以在进行建模时月份是很重要的特征之一。 在上图中0代表的周一1代表周二……销售额在每周七天也呈现出很强的周期性在周日的销售额达到最高周一跌到最低然后慢慢回到高位。
Prophet是facebook开源的一个时间序列预测算法。Prophet的使用非常简单只需要输入已知的时间序列的时间戳和相应的值以及需要预测的时间序列的长度Prophet就能输出未来的时间序列走势。 接下来对所有商店和商品的组合进行预测之前。先选择store 1和item 1进行预测熟悉Prophet的使用。 预测第一步组装历史数据用于模型训练。Prophet的模型比较简单相当于Prophet的对象。在这个对象里把growth定义为线性。 在数据探索阶段得到的结论是一个商品的销量不但有周与周之间的周期性而且有月份之间的周期性。所以weeklyyearly作为true。然后使用fit方法对模型进行训练。 训练之后可以使用这个模型预测未来90天的走势。 从上图可以看到商品整体销量呈逐年增加的趋势。商品销量受季节和节假日变化影响显著。 最后把真实数据和未来90天的预测数据它拼接到一起。真实数据从2017年到2018年的1月。未来90天的预测数据从2018年1月到4月。如上图所示带有黑点的数据是真实数据。 通过获取历史数据和预测数据的准确性。可以预测一些准确性指标比如MAE、MSE和RMSE。
四、将预测模型扩展到每个商店-商品的预测
接下来开始建立更加完善的模型对商店10个商店和商品50件商品的所有组合进行预测。建立模型的第一步是准备数据。 训练数据主要有四列。对应的是每一种商店商品的组合在特定日期的销量。然后针对这些数据进行建模。 创建一个Prophet对象建立模型。weekly和yearly被设为true然后预测未来90天的趋势。 从预测数据中抽取出一些需要的字段和历史数据。将历史数据和预测数据拼接到一起设置结果数据中的商店ID和商品ID返回数据集。将模型训练应用到每个商店和商品组合将预测结果写入OSS。 接下来把OSS中的预测结果加载到spark里。选择时间戳商店和的预测值。选择日期应大于2018年1月1号。根据时间和商店组合。预测的商店销售额如上图所示。 接下来开始计算每个模型的测试指标。首先定义一个UDF用于计算模型的测试指标。获取训练日期计算训练指标进行组装。 上图是针对10家商店的50种商品形成的预测结果。最终完成了每个商店和商品的组合以及销售额的模型建立与预测。
原文链接
本文为阿里云原创内容未经允许不得转载。