基于ARIMA、SVM、随机森林销售的时间序列预测

news2025/1/11 18:07:16

如今DT(数据技术)时代,数据变得越来越重要,其核心应用“预测”也成为互联网行业以及产业变革的重要力量。最近我们被客户要求撰写关于销售时间序列预测的研究报告,包括一些图形和统计输出。对于零售行业来说,预测几乎是商业智能(BI)研究的终极问题,单纯从机器学习的角度来说,做到精准预测很容易,但是结合业务提高企业利润却很难。预测精确性是核心痛点。

 

相关视频:在Python和R语言中建立EWMA,ARIMA模型预测时间序列

视频:机器学习助推精准销量预测 part1

视频:机器学习助推精准销量预测 part1

【视频】支持向量机SVM、支持向量回归SVR和R语言网格搜索超参数优化实例

支持向量机SVM、支持向量回归SVR和R语言网格搜索超参数优化实例

,时长07:24

业务挑战

扎对,将产品粗略分为:基本款和时装。对于基本款,每年都没什么大变化,国际流行的影响也不大,那么可以进行长计划生产。对于时装,决定潮流走向的决策权不在某个区域,一个地方的买手们也没有成长到可以准确预判国际流行趋势,所以需要结合不同区域的各种因素,进行预测。对应的,在新货构成中,销量预测策略为:基本款计划生产,时尚款机动调整。

解决方案

任务/目标

根据服装零售业务营销要求,运用多种数据源分析实现精准销量预测。

数据源准备

沙子进来沙子出,金子进来金子出。无数据或数据质量低,会影响模型预测效果。在建立的一个合理的模型之前,对数据要进行收集,搜集除已有销量数据之外的额外信息(比如天气,地点,节假日信息等),再在搜集的数据基础上进行预处理。

有了数据,但是有一部分特征是算法不能直接处理的,还有一部分数据是算法不能直接利用的。

特征转换

把不能处理的特征做一些转换,处理成算法容易处理的干净特征举例如下:

销售日期。就时间属性本身来说,对模型来说不具有任何意义,需要把日期转变成到年份,月份,日,周伪变量。

产品特征。从产品信息表里面可以得到款式,颜色,质地以及这款产品是否是限量版等。然而并没有这些变量。这就需要我们从产品名字抽取这款产品的上述特征。

以上例举的只是部分特征。

构造

以上说明了如何抽取相关特征,我们大致有如下训练样本(只列举部分特征)。

【大数据部落】基于ARIMA,SVM,随机森林销售的时间序列预测

划分训练集和测试集

考虑到最终模型会预测将来的某时间段的销量,为了更真实的测试模型效果,以时间来切分训练集和测试集。具体做法如下:假设我们有2014-02-01~2017-06- 17的销量相关数据。以2014-02-01~2016-03-19的销量数据作为训练,2016-03-20~2017-06-17的数据作为测试。

建模

ARIMA,一般应用在股票和电商销量领域

ARIMA模型是指将非平稳时间序列转化为平稳时间序列,然后将结果变量做自回归(AR)和自平移(MA)。

随机森林

用随机的方式建立一个森林,森林由很多决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。

支持向量回归(SVR)

SVR最本质与SVM类似,都有一个缘,只不过SVM的保证金是把两种类型分开,而SVR的保证金是指里面的数据会不会对回归有帮助。

模型优化

1.上线之前的优化:特征提取,样本抽样,参数调参。

【大数据部落】基于ARIMA,SVM,随机森林销售的时间序列预测

2.上线之后的迭代,根据实际的A / B测试和业务人员的建议改进模型

【大数据部落】基于ARIMA,SVM,随机森林销售的时间序列预测

从上图可以看出,在此案例中,支持向量机和随机森林算法模型的预测误差最小,运用3种方法预测某商品的销量,其可视化图形如下:

【大数据部落】基于ARIMA,SVM,随机森林销售的时间序列预测

【大数据部落】基于ARIMA,SVM,随机森林销售的时间序列预测

【大数据部落】基于ARIMA,SVM,随机森林销售的时间序列预测

可以看出,销量的预测值的趋势已经基本与真实销量趋势保持一致,但是在预测期较长的区间段,其预测值之间的差别较大。

评估效果不能只看销量,要综合考虑,需要参考业务对接,预测精度,模型可解释性和产业链整体能力等因素综合考虑;不能简单作为企业利润增加的唯一标准我们的经验是,预测结果仅作为参考一个权重值,还需要专家意见,按照一定的权重来计算

展望

除了以上列举的一些方法,我们已经在尝试更复杂的销售预测模型,如HMM,深度学习(Long Short-Term Memory网络,卷积神经网络(CNN))等;同时需要考虑到模型的可解释性,可落地性和可扩展性,避免“黑箱”预测 ;还在尝试采用混合的机器学习模型,比如GLM + SVR,ARIMA + NNET等。

销售预测几乎是商业智能研究的终极问题,即便通过机器学习算法模型能够提高测试集的预测精度,但是对于未来数据集的预测,想做到精准预测以使企业利润最大化,还需要考虑机器学习模型之外的企业本身因素。比如,企业的整体供应链能力等,如何将企业因素加入到机器学习模型之中,是未来预销售预测的一个难点与方向。因此,要想解决销售预测终极问题还有一段路要走。

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

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

相关文章

Elsevier(爱思唯尔)LaTex 模板详细说明

Elsevier 模板的使用 官方网站提供的 Latex Instructions,Elsevier 模板下载地址:elsarticle-template.zip [ 如果不了解文档类的作用,可以参考:documentclass ] Elsevier 提供了 3 种自定义的文档类: elsarticle…

大厂软件测试流程完整版

目 1.概述 1.1目的 有效的保证软件质量; 有效的制定不同测试类型(软件系统测试、音频主观性测试、Field Trial、专项测试、自动化测试、性能测试、用户体验测试)的软件测试计划; 按照计划进行测试,发现软件中存在…

Session | web应用的session机制、session的实现原理

目录 一:web应用的session机制 二:session的实现原理 一:web应用的session机制 (1)什么是会话? ①会话对应的英语单词:session ②用户打开浏览器,进行一系列操作,然后…

[附源码]计算机毕业设计楼盘销售管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

session,cookie,token详解

session,cookie,token详解 1.session 1.1 session的作用是什么 session的作用是用于保存每个用户的专用信息;当用户访问时,服务器都会为每个用户分配唯一的Session ID,而且当访问其他程序时可以从用户的session中取出该用户的数据为用户服务。…

将 Cpar 文件导入 2019 版的 Carsim 后,无法打开 video+plot 是什么问题?

大家在进行联合仿真的过程中,首先要将你的 Carsim 右上角的锁打开! 解锁之后要明确仿真动画(video)和图像(plot)只有在联合仿真运行完了之后才会有,这个时候需要点击 Simulink 模型界面那个绿色…

Elasticsearch 基本操作

👉 Elasticsearch 基本操作 💎 1  RESTful REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器…

基于改进量子粒子群算法的电力系统经济调度(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🎉作者研究:🏅🏅🏅本科计算机专业,研究生电气学硕…

【CUDA学习笔记】OneFlow公众号CUDA算子优化文章学习笔记

1 CUDA学习资料合集 【OneFlow】岁末年初,为你打包了一份技术合订本 2 GPU概念介绍 《GPU的硬件结构与执行原理 —— 开源100天,OneFlow送上“百天大礼包”:深度学习框架如何进行性能优化 》 2.1 内存模型 2.1.1 Bank介绍 《GPU硬件结构…

微信小程序开发笔记 进阶篇④——getPhoneNumber 获取用户手机号码(小程序云)

文章目录一、前言二、前端代码wxml三、前端代码js四、云函数五、程序流程一、前言 大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机号码。但是,因为小程序用户的手机号码属于重要信息,为了安全,所以需要如下一系列较…

transforms的二十二个方法(transforms用法非常详细)

变换是常见的图像变换,其可以适应连接在一起的ComposeComposeCompose, 此外,还有torchvision.transforms.functionaltorchvision.transforms.functionaltorchvision.transforms.functional模块,功能转换可以对转换进行细粒度控制,…

Redis - 数据概念与操作

1.Redis数据类型 Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种数据类型: (1)字符串 string 如:“hello,world” (2)列表 list 如:a b c d a &…

【Jmeter】接口测试工具常用配置

目录 一、简介 二、安装和配置 三、Jmeter常用组件 四、编写一个HTTP接口脚本 五、断言 一、简介 JMeter,一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是接口功能、自动化、性 能测试的工具。具有高可扩展性、…

用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类

介绍 在本文中,我们将看到如何开发具有多个输出的文本分类模型。我们开发一个文本分类模型,该模型可分析文本注释并预测与该注释关联的多个标签。 最近我们被客户要求撰写关于NLP的研究报告,包括一些图形和统计输出。多标签分类问题实际上是…

SPP-24《区块链技术及应用报告》

本文根据中科院计算所研究员孙毅博士的报告,总结区块链的基本原理、认识误区、技术挑战及应用场景。时间:2022-12-07 在2022十四五数字经济发展规划中,区块链列入重点发展规划。在数据为王的时代,谁拥有了数据,谁就拥有…

【网络安全工程师】从零基础到进阶,看这一篇就够了

学前感言 1.这是一条需要坚持的道路,如果你只有三分钟的热情那么可以放弃往下看了。 2.多练多想,不要离开了教程什么都不会,最好看完教程自己独立完成技术方面的开发。 3.有问题多google,baidu…我们往往都遇不到好心的大神,谁…

深度学习中常见问题及知识点补充(持续更新中)

1. 问题描述 出现原因:tensorflow版本与keras版本不对应 (图片是取自一位叫皮肤科大白的博主)如果两个版本不对应就会出现上述问题 解决办法:查找自己tensorflow的版本号,根据tensorflow版本安装对应版本的keras #…

深聊性能测试,从入门到放弃之: Windows系统性能监控(二) 资源监控器介绍及使用。

资源监控器介绍及使用1、引言2、资源监视器2.1 打开方式2.2 基本介绍2.3 使用3、总结1、引言 小屌丝:鱼哥,我看了你这篇《Windows系统性能监控(一) 性能监视器介绍及使用》,让我学到了好多知识。 小鱼:嗯,我自己在写这…

关于kunit的二点够用就行知识概念

前面我们写过一篇关于Kunit怎么快速使用起来的文章,但是当时只是搭建了框架,让整个KUNIT跑起来了。使用到的关于KUNIT中的东西还是比较的少。现在这次我们去测试一些复杂的场景,使用到一些复杂的断言。继续我们的二点点KUNIT,学习…

神经网络的类型分类和结构理解

一、序言 神经网络是模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。 在深度学习领域,神经网络就是我们深度学习的灵魂,如果我们想依靠算法实现一些功能,就必须依托不同的神经网络结构,所以很有必…