本发明属于机器学习和供应链管理的交叉领域,尤其是涉及对产品或服务的需求进行模式挖掘和实时预测的方法,具体是一种基于增量算法的需求预测方法。
背景技术:
联网、移动营销、新零售的发展,对消费者需求感知灵敏度、库存响应速度和供应链管理效率都提出了更高的要求。在供应链管理领域,库存管理和决策占据非常重要的地位;而准确地预估未来的需求量以及需求变动趋势,将极大地提升库存的运营水平。如何有效对新产品的未来需求尤其是实时需求进行预测,日渐成为在快节奏的商业模式变革下产品运营和供应链管理的重要课题和难题。由于新产品没有任何历史数据,传统的时间序列和机器学习模型都不适用,开发一套有效、可行的预测方法,对于提升企业运营效率,降低运营成本具有重要意义。
现有的需求预测方法,主要包括三大体系:基于时间序列的算法、基于因果关系的算法和机器学习算法。基于时间序列的算法只需要需求本身的信息,就可以完成预测。基于因果关系的预测算法构建了价格变化、促销等影响因素与需求的因果关系。基于机器学习方法的预测方法打破了回归要求的影响因素与需求的线性关系的限制,考虑了更多的影响因素。这些算法主要是从需求的趋势和特征工程角度提高预测精度。
通过对需求进行处理来提高预测精度的方法主要包含自底向上和自下而上两种。自底向上的预测算法就是将需求划分为更低层次(细分产品或时间段)的需求,预测低层的需求加总得到上层需求;自下而上是指先将细分产品或时间段的需求加总,预测总需求,再分配到每个细分产品或时间段。自底向上可以减少信息缺失引起的误差,但是会增加随机误差,因为自底向上预测的随机误差是低层随机误差的集合。自下而上的算法可以抵消细分产品或时间段需求的波动,但却会损失实时信息。
不论是哪种算法,俱有其不足之处。上述算法,都没有提到对需求具有影响、却无法量化或收集到的因素。这些因素无法通过特征工程处理、大多也不是对需求细分或加总能解决。因此,本文设计了一种基于增量算法的需求预测方法,主要特点是通过对特征和需求的差分处理,减少无法定量表征的因素对预测的影响,有效提升需求预测的准确度。
技术实现要素:
为了解决上述存在的技术问题,本发明采用了以下方案:
一种基于增量算法的需求预测方法,其特征在于:该方法采用如下技术方案:
确定预测提前期τ,差分间隔时长δ(δ≥τ)和训练集时间段tp;提取产品需求预测的预测特征集s;提取产品训练时间段tp的预测特征矩阵f0和需求量向量d;以差分间隔时长δ为单位,对特征f0进行差分处理得到增量特征矩阵δf,作为预测特征并入矩阵f0,构建增量预测的特征矩阵f;以差分间隔时长δ为单位,计算增量需求向量δd;将矩阵f和δd用于训练机器学习预测模型m;提取日期p合并预测特征fp,输入训练好的模型m中,预测出增量需求δdp;增量需求δdp加上间隔δ时长之前的需求即得到需求的预测值dp。
所述的基于增量算法的需求预测方法,其特征在于:将对需求的预测转变为对增量需求的预测。
所述的基于增量算法的需求预测方法,其特征在于:所述增量需求采用的计算公式为δdt=dt-dt-δ,其中dt表示产品在销售阶段t时的销量;δdt表示产品阶段t时的销量比阶段t-δ时销量的增加值。
所述的基于增量算法的需求预测方法,其特征在于:对特征矩阵f0进行差分处理得到增量特征矩阵δf,作为预测特征并入矩阵f0,得到训练模型的合并预测特征矩阵f。
所述的基于增量算法的需求预测方法,其特征在于:对特征矩阵的差分处理指:对特征矩阵f0={f1,f2,...,fn}中的每个特征向量fi,i=1,2,...,n,采用计算公式δfit=fit-fit-δ,i=1,2,...,n,其中fit表示特征fi在销售阶段t时的数值,δfit表示特征fi在阶段t的数值比阶段t-δ时的增加值,得到增量矩阵δf={δf1,δf2,...,δfn}。
所述的基于增量算法的需求预测方法,其特征在于:预测出增量需求δdp后,加上δ时长之前的实际需求,得到需求的预测值dp:
dp=δdp dp-δ
所述的基于增量算法的需求预测方法,其特征在于:δ的取值范围是以分钟、小时、天、周、月、季度或年为单位的任意数值。
该基于增量算法的需求预测方法具有以下有益效果:
本发明设计了一种基于增量算法的需求预测方法,主要特点是通过对特征和需求的差分处理,减少无法定量表征的因素对预测的影响,有效提升需求预测的准确度。
附图说明
图1:本发明基于增量算法需求实时预测流程图。
具体实施方式
下面结合附图和具体实施例对本发明进一步作详细说明.这些实施例仅用于解释和说明本发明的内容,不作为对本发明的保护范围限定。本发明的范围由权利要求书来限定,其中某些要素的改变、替换等是都包含在本发明的保护范围之内。
本发明采用如下技术方案:
确定预测提前期τ,差分间隔时长δ(δ≥τ)和训练集时间段tp;提取产品需求预测的预测特征集s;提取产品训练时间段tp的预测特征矩阵f0和需求量向量d;以差分间隔时长δ为单位,对特征f0进行差分处理得到增量特征矩阵δf,作为预测特征并入矩阵f0,构建增量预测的特征矩阵f;以差分间隔时长δ为单位,计算增量需求向量δd;将矩阵f和δd用于训练机器学习预测模型m;提取日期p合并预测特征fp,输入训练好的模型m中,得到预测的增量需求δdp;增量需求δdp加上δ时长之前的需求即为需求的预测值dp。
具体步骤如下:
1.数据准备:
1.1确定预测提前期τ,差分间隔时长δ(δ≥τ)和训练集时间段tp。
1.2提取产品需求预测的预测特征集s。
1.3提取产品tp时间段的预测特征矩阵f0和需求量向量d。
2.差分处理:
2.1以差分间隔时长δ为单位,对特征f0进行差分处理得到增量特征矩阵δf。
2.2将增量特征矩阵δf作为特征并入矩阵f0,合并得到训练模型的增量预测特征矩阵f。
2.3以差分间隔时长δ为单位,计算增量需求向量δd。
3.模型训练:将矩阵f和δd用于训练机器学习预测模型m
4.预测输出:
4.1提取日期p合并预测特征fp。
4.2将特征fp输入训练好的模型m中,得到预测的增量需求δdp。
4.3增量需求δdp加上δ时长之前的需求得到需求的预测值dp。
上述方案中,1.1所述的差分间隔时长δ指增量是通过当前时间段数值与相隔δ个时间段前的数值相减得到。比如要提前τ期预测第t天相对于过去1天前的增量需求,δ=1天;要提前τ期预测第t天相对于过去7天前的增量需求,则δ=1周。δ的取值范围可以是单位为分钟、小时、天、周、月、季度或年的任意数值。
上述方案中,1.1所述的预测提前期τ是指要预测的未来销量所在的时点与当前时点的时间间隔,τ要小于或等于δ。
上述方案中1.2所述的特征包括但不限于:历史销量、价格、促销、评论、浏览量、库存、产品属性、门店属性、天气、节假日、周几等。
上述方案中2.2所述的增量矩阵δf={δf1,δf2,...,δfn}中的每个增量特征向量δfi,i=1,2,...,n,采用如下计算公式得到:
δfit=fit-fit-δ,i=1,2,...,n
其中fit表示特征fi在销售阶段t时的数值,δfit表示特征fi在阶段t的数值比阶段t-δ时的增加值。
上述方案中,2.3所述增量需求中的元素采用如下的计算公式得到:
δdt=dt-dt-δ
其中dt表示产品在销售阶段t时的销量;δdt表示产品阶段t时的销量比阶段t-δ时销量的增加值。
上述方案中,4.3所述的需求预测值dp采用如下的计算公式得到:
dp=δdp dp-δ
其中dp表示产品在销售阶段p时的需求预测值;δdp表示在销售阶段p时的增量需求预测值,dp-δ表示产品在销售阶段p-δ时的真实需求。
上述方案中,3.1所述的机器学习预测模型包括但不限于:多项式回归、随机森林、神经网络、支持向量机、强化学习、gbdt、xgboost以及相应的集成学习算法。
结合图1,确定预测提前期τ,差分间隔时长δ(δ≥τ)和训练集时间段tp;提取产品需求预测的预测特征集s;提取产品训练时间段tp的预测特征矩阵f0和需求量向量d;以差分间隔时长δ为单位,对特征f0进行差分处理得到增量特征矩阵δf,作为预测特征并入矩阵f0,构建增量预测的特征矩阵f;以差分间隔时长δ为单位,计算增量需求向量δd;将矩阵f和δd用于训练机器学习预测模型m;提取日期p合并预测特征fp,输入训练好的模型m中,预测出增量需求δdp;增量需求δdp加上间隔δ时长之前的需求即得到需求的预测值dp。
实施例一
某大型020即时平台共有超过10万个门店,数据库内拥有2016年1月1日-2019年8月31日所有门店的运营记录。现计划预测44个门店未来一天的订单需求,预测提前期τ=1天。通过对历史销量的初步分析,确定差分间隔时长δ=1天、和训练集时间段不超过tp=[2018-11-1,2017-11-2,...,2019-10-31]t。部分新门店上线时间在2017年11月1日之后,即时间段长度为tp≤365。
提取用于门店订单需求预测的预测特征集s。属性特征包括历史销量、价格、促销、评论、浏览量、库存、产品属性、门店属性、天气、节假日、周几。
提取门店k用于模型训练的预测特征
和需求量向量
以差分间隔时长δ为单位,对特征
将增量特征矩阵δfk作为预测特征并入矩阵
提取门店k的需求量向量dk,以差分间隔时长δ为单位,根据δdkt=dkt-dkt-δ计算增量需求向量δdk
用dk与fk构建门店k的训练集数据fdk
用随机森林算法进行模型训练,得到门店k对应的模型mk
把门店k的预测日期p的特征fp输入模型mk,可以得到门店k增量需求的预测值δdkp;增量需求δdkp加上δ天前的需求即为需求的预测值dkp。
dkp=δdkp dkp-δ
实施例二
某大型商超共有1000个已有sku,数据库内拥有2016年1月1日-2019年10月31日所有sku的运营记录。现计划对采购提前期为3天的sku,进行需求预测,用于支持每天的补货决策。预测提前期τ=3天。通过对历史销量的初步分析,确定差分间隔时长δ=7天、和训练集时间段为tp=[2016-1-1,2017-1-2,...,2019-10-31]t,时间段长度为tp,共1399天。
提取用于产品需求预测的预测特征集s。属性特征包括历史销量、价格、促销、评论、浏览量、库存、产品属性、竞品信息、页面展示、天气、节假日、周几。
提取产品k用于模型训练的预测特征
和需求量向量
以差分间隔时长δ为单位,对特征
将增量特征矩阵δfk作为预测特征并入矩阵
提取产品k的需求量向量dk,以差分间隔时长δ为单位,根据δdkt=dkt-dkt-δ计算增量需求向量δdk
用dk与fk构建产品k的训练集数据fdk
用xgboost算法进行模型训练,得到产品k对应的模型mk
把产品k的预测日期p的特征fp输入模型mk,可以得到产品k增量需求的预测值δdkp;增量需求δdkp加上δ天前的需求即为需求的预测值dkp。
dkp=δdkp dkp-δ
实施例三
某大型商超共有1000个已有sku,数据库内拥有2016年1月1日-2019年10月31日所有sku的运营记录。现计划对一个地区采购提前期为7天的sku的2019年10月共30天销量进行需求预测,用于支持总仓的补货决策。预测提前期τ=7天。通过对历史销量的初步分析,确定差分间隔时长δ=1月、和训练集时间段为tp=[2016-1-1,2017-1-2,...,2019-10-31]t,时间段长度为tp,共1399天。
提取用于产品需求预测的预测特征集s。采用的属性与[026]相同
提取产品k用于模型训练的预测特征
和需求量向量
以差分间隔时长δ为单位,对特征
将增量特征矩阵δfk作为预测特征并入矩阵
提取产品k的需求量向量dk,以差分间隔时长δ为单位,根据δdkt=dkt-dkt-δ计算增量需求向量δdk
用dk与fk构建产品k的训练集数据fdk
用随机森林算法进行模型训练,得到产品k对应的模型mk
把产品k的要预测的2019年10月中每天p的特征fp输入模型mk,可以得到产品k日期p增量需求的预测值δdkp;增量需求δdkp加上δ天前的需求即为产品k日期p的需求预测值dkp。
dkp=δdkp dkp-δ
把产品k的要预测的2019年10月中每天的需求加总,即可得到2019年10月的总需求
1.一种基于增量算法的需求预测方法,其特征在于:该方法采用如下技术方案:
1.1确定预测提前期τ,差分间隔时长δ(δ≥τ)和训练集时间段tp;
1.2提取产品需求预测的预测特征集s;
1.3提取产品训练时间段tp的预测特征矩阵f0和需求量向量d;
2.1以差分间隔时长δ为单位,对特征f0进行差分处理得到增量特征矩阵δf;
2.2增量特征矩阵δf作为预测特征并入矩阵f0,合并得到训练模型的构建增量预测的特征矩阵f;
2.3以差分间隔时长δ为单位,计算增量需求向量δd;
3.将矩阵f和δd用于训练机器学习预测模型m;
4.1提取日期p合并预测特征fp;
4.2将预测特征fp输入训练好的模型m中,预测出增量需求δdp;
4.3增量需求δdp加上间隔δ时长之前的需求即得到需求的预测值dp。
2.根据权利要求1所述的基于增量算法的需求预测方法,其特征在于:将步骤1.2中的需求预测转变为对增量需求的预测。
3.根据权利要求1所述的基于增量算法的需求预测方法,其特征在于:步骤2.3所述增量需求采用的计算公式为δdt=dt-dt-δ,其中dt表示产品在销售阶段t时的销量;δdt表示产品阶段t时的销量比阶段t-δ时销量的增加值。
4.根据权利要求1所述的基于增量算法的需求预测方法,其特征在于:对步骤1.3所述特征矩阵f0进行差分处理得到增量特征矩阵δf,作为预测特征并入矩阵f0,得到训练模型的合并预测特征矩阵f。
5.根据权利要求1所述的基于增量算法的需求预测方法,其特征在于:对步骤2.1特征矩阵的所述差分处理指:对特征矩阵f0={f1,f2,…,fn}中的每个特征向量fi,i=1,2,…,n,采用计算公式δfit=fit-fit-δ,i=1,2,…,n,其中fit表示特征fi在销售阶段t时的数值,δfit表示特征fi在阶段t的数值比阶段t-δ时的增加值,得到增量矩阵δf={δf1,δf2,…,δfn}。
6.根据权利要求1所述的基于增量算法的需求预测方法,其特征在于:预测出步骤4.2所述增量需求δdp后,加上δ时长之前的实际需求,得到需求的预测值dp:
dp=δdp dp-δ
7.根据权利要求1所述的基于增量算法的需求预测方法,其特征在于:步骤2.1所述δ的取值范围是以分钟、小时、天、周、月、季度或年为单位的任意数值。
技术总结