使用Databricks进行零售业需求预测的应用实践

简介:本文从零售业需求预测痛点、商店商品模型预测的实践演示,介绍Databricks如何助力零售商进行需求、库存预测,实现成本把控和营收增长。

作者:李锦桂 阿里云开源大数据平台开发工程师

本文从零售业需求预测痛点、商店商品模型预测的实践演示,介绍Databricks如何助力零售商进行需求、库存预测,实现成本把控和营收增长。

本文分为以下四部分:

1.消费者需求预测对零售业的重要性

2.数据的准备与可视化

3.基于DDI建立预测单个商店-商品模型

4.将预测模型扩展到每个商店-商品的预测

一、消费者需求预测对零售业的重要性

首先,需求预测对零售商至关重要。如果商店的商品过多,货架和仓库的空间紧张,产品容易过期,财务资源被库存束缚。零售商无法利用制造商带来的新机会,从而错过消费模式的转变。

由于商店内商品过少,客户无法从上商店内买到需要的商品。不但会造成零售商的收入损失,而且随着时间的推移,消费者的失望情绪,会驱使消费者转向竞争对手。

综上所述,预测消费者需求的准确性和及时性,对零售商非常重要。

二、数据的准备与可视化

下面我们使用零售数据模拟如何使用DDI的notebook和Facebook prophet来对消费者的需求进行建模和预测。

现在我们需要的数据已经上传到了OSS的Bucket里面,接下来,开始对消费者的需求进行建模和预测。当数据上传到OSS上之后,可以在DDI的Notebook上对数据进行分析和建模。

本次使用的数据集是2012年到2017年,10个商店中的50商品销售数据。数据包含四列。第一列是日期;第二列是商店的ID(1-10);第三列是商品的ID(1-50);第四列是当日商品的销售量。

实验目的是预测未来三个月,这些商品在各个商店的销量,对商店未来的库存备货提供指导。

在默认配置下,YARN分配的executor CPU为1core,memory为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定义为线性。

在数据探索阶段,得到的结论是,一个商品的销量,不但有周与周之间的周期性,而且有月份之间的周期性。所以weekly,yearly作为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种商品形成的预测结果。最终完成了每个商店和商品的组合,以及销售额的模型建立与预测。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

龙蜥开源内核追踪利器 Surftrace:协议包解析效率提升 10 倍 | 龙蜥技术

简介:如何将网络报文与内核协议栈清晰关联起来精准追踪到关注的报文行进路径呢? 文/系统运维 SIG Surftrace 是由系统运维 SIG 推出的一个 ftrace 封装器和开发编译平台,让用户既能基于 libbpf 快速构建工程进行开发,也能作为 ft…

开源要正式写进法律了?

作者 | 何苗 出品 | CSDN(ID:CSDNnews)去年,当大家还在为开源的快速发展而欢呼之际,影响了全球数百万台计算机Log4j 漏洞事件给开源软件开发者与使用者敲响了一记警钟。因而今年,开源软件及其供应链安全…

阿里云软著申请|这项保护,让我得到了10万赔偿

简介:对于企业来说,申请软件著作权是证明自己和保护自己的强力护盾。除此之外,它还有着很多不可忽视的意义与价值。阿里云软著申请,一站式智能服务,助力企业和开发者高效发展,省时省力更省心。 前几日&…

宜搭小技巧|海量数据管理难?这招帮你事半功倍

简介:一键生成数据管理页,海量数据随心管理! 话接上回,宜小搭组织大家团建,当收集完大家的报名信息后,有小伙伴想要修改已提交的信息,面对海量的数据,整理查找太费时间。 如何快速…

1024 程序员节官方剧透:重磅大咖再聚,共话中国技术新生态

在二进制垒起的计算机世界里,1024 对于程序员而言,早已不再是单纯的一串数字,不断演进的开发时代赋予了它特殊的意义。 伴随着一份份热衷与期盼,10 月 22-24 日,由湖南湘江新区管委会主办,长沙工业与信息化…

前端性能优化实战

简介:引用彼得德鲁克的一句话,“You cant manage what you cant measure。一件事如果你无法衡量它、你就无法管理它”,性能同样如此。如果没有一个准确的方案来对性能进行度量,那优化就无从谈起。那么对于我们来说,哪些…

Elastic与阿里云助力汽车及出行产业数字化转型

简介:目前,阿里云和Elastic在全国已经有很多的项目正在开展合作,而在移动出行领域与享道出行的合作案例,则是代表性的。 在汽车产业变革逐步深入的当下,云计算、大数据等信息技术成为了汽车企业经历数字化转型时的“刚…

企业版Spark Databricks + 企业版Kafka Confluent 联合高效挖掘数据价值

简介:本文介绍了如何使用阿里云的Confluent Cloud和Databricks构建数据流和LakeHouse,并介绍了如何使用Databricks提供的能力来挖掘数据价值,使用Spark MLlib构建您的机器学习模型。 前提条件 已注册阿里云账号,详情请参见阿里云…

解决微服务架构下流量有损问题的实践和探索

简介:绝⼤多数的软件应⽤⽣产安全事故发⽣在应⽤上下线发布阶段,尽管通过遵守业界约定俗成的可灰度、可观测和可滚回的安全⽣产三板斧,可以最⼤限度的规避发布过程中由于应⽤⾃身代码问题对⽤户造成的影响。但对于⾼并发⼤流量情况下的短时间…

5月25日,阿里云开源 PolarDB-X 将迎来升级发布

简介:2022年5月25日,阿里云开源 PolarDB-X 将升级发布新版本!PolarDB-X 从 2009 年开始服务于阿里巴巴电商核心系统, 2015 年开始对外提供商业化服务,并于 2021 年正式开源。本次发布会将重磅推出在稳定性、生态融合以…

技术分享丨云企业网CEN2.技术揭晓

简介:随着企业数字化转型的加速,越来越多的企业选择了将业务部署在云上,这其中有超过20%的企业有全球组网的需求,这就使得云上网络的规模越来越大,复杂度也越来越高,为了应对这些变化,阿里云推出…

MAE 自监督算法介绍和基于 EasyCV 的复现

简介:自监督学习(Self-Supervised Learning)能利用大量无标注的数据进行表征学习,然后在特定下游任务上对参数进行微调。通过这样的方式,能够在较少有标注数据上取得优于有监督学习方法的精度。近年来,自监…

企业实践|分布式系统可观测性之应用业务指标监控

简介:本文主要讲述如何建立应用业务指标Metrics监控和如何实现精准告警。Metrics 可以翻译为度量或者指标,指的是对于一些关键信息以可聚合的、数值的形式做定期统计,并绘制出各种趋势图表。透过它,我们可以观察系统的状态与趋势。…

1024 程序员节城市嘉年华,共话技术生涯的一万种可能!

更硬核的技术峰会,更多元的主题论坛,更丰富的科技元素……更热血的 1024 程序员节闪亮登场!由湖南湘江新区管委会主办,长沙工业与信息化局、长沙信息产业园管委会与 CSDN 联合承办的第三届 2022 1024 程序员节将于 10 月 22 - 24 …

作业帮在线业务 Kubernetes Serverless 虚拟节点大规模应用实践

简介:目前方案已经成熟,高峰期已有近万核规模的核心链路在线业务运行在基于阿里云 ACKECI 的 Kubernetes Serverless 虚拟节点。随着业务的放量,未来运行在 Serverless 虚拟节点上的服务规模会进一步扩大,将节省大量的资源成本。 …

浅析微服务全链路灰度解决方案

简介:帮助应用发布版本过程中更精细化,提高了发布过程中的稳定性。服务转移⾄请求链路上进行流量控制,有效保证了多个亲密关系的服务顺利安全发布以及服务多版本并⾏开发,进⼀步促进业务的快速发展。 作者: 十眠&…

译:零信任对 Kubernetes 意味着什么

这篇是 Buoyant 的创始人 William Morgan 文章《# What Does Zero Trust Mean for Kubernetes?》[1]的翻译,文章很好的解释了什么是零信任、为什么要实施零信任,以及服务网格如何以最小的代码实现零信任。零信任是营销炒作,还是新的机会&…

Serverless 应用中心:Serverless 应用全生命周期管理平台

简介:Serverless 应用中心,是阿里云 Serverless 应用全生命周期管理平台。通过 Serverless 应用中心,用户在部署应用之前无需进行额外的克隆、构建、打包和发布操作,即可快速部署和管理应用。Serverless 应用中心帮助用户快速联动…

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

简介:今天,EventBridge 联合钉钉连接器,打通了钉钉生态和阿里云生态,钉钉的生态伙伴可以通过通道的能力驱动阿里云上海量的计算力。 作者:尘央 背景 “以事件集成阿里云,从 EventBridge 开始”是 EventB…

开源当道,群英荟萃!1024 程序员节北京峰会火热来袭

1024 程序员节,致敬每一位二进制世界的主角。由开放原子开源基金会主办,北京经开区国家信创园、CSDN 承办的 2022 1024 程序员节北京峰会将于 10 月 24 日精彩来袭。以“软件新时代 开源创未来”为主题,聚焦开源新潮流,诚邀广大程…