商品销售额预测方法、装置、计算机设备和存储介质转让专利

申请号 : CN202010059719.8

文献号 : CN111274531A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋旭曦欧文祥高勇刘清林张曙光

申请人 : 苏宁云计算有限公司

摘要 :

本申请涉及一种商品销售额预测方法、装置、计算机设备和存储介质,所述方法包括:获取预设时间段内目标品类商品的第一商品数据集,第一商品数据集包括目标品类商品的销售额以及销售额对应的时间数据;根据销售额对应的时间数据按照时间顺序对第一商品数据集中的销售额进行时间排序,得到第二商品数据集;根据第二商品数据集获取目标时间序列模型,目标时间序列模型用于表征商品的销售额与时间数据的对应关系;将目标时间数据输入目标时间序列模型,得到目标时间序列模型的输出值,输出值为目标时间数据对应的目标品类商品的预测销售额。上述方法能够自动化对商品销售额进行预测以提高商品销售额预测效率。

权利要求 :

1.一种商品销售额预测方法,所述方法包括:

获取预设时间段内目标品类商品的第一商品数据集,所述第一商品数据集包括所述目标品类商品的销售额以及所述销售额对应的时间数据;

根据所述销售额对应的时间数据按照时间顺序对所述第一商品数据集中的销售额进行时间排序,得到第二商品数据集,所述第二商品数据集包括排序后的销售额以及所述排序后的销售额对应的时间数据;

根据所述第二商品数据集获取目标时间序列模型,所述目标时间序列模型用于表征商品的销售额与时间数据的对应关系;

将目标时间数据输入所述目标时间序列模型,得到所述目标时间序列模型的输出值,所述输出值为所述目标时间数据对应的目标品类商品的预测销售额。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取预设数量的所述目标品类商品的预测销售额;

根据各所述目标品类商品的预测销售额确定各所述目标品类商品的占比;

获取所述目标时间数据对应的计划总销售额;

根据所述预设总销售额以及各所述目标品类商品的占比确定各所述目标品类商品的计划销售额。

3.根据权利要求1所述的方法,其特征在于,所述根据所述第二商品数据集获取目标时间序列模型,包括:根据所述第二商品数据集获取所述目标品类商品的销售额增长趋势信息,根据所述销售额增长趋势信息获取所述目标时间序列模型的第一函数;

根据所述第二商品数据集获取所述目标品类商品的销售额的周期性信息,根据所述周期性信息获取所述目标时间序列模型的第二函数;

根据所述第二商品数据集获取所述目标品类商品的预设时间点的销售额,根据所述预设时间点的销售额获取所述目标时间序列模型的第三函数;

根据所述第一函数、所述第二函数和所述第三函数获取所述目标时间序列模型。

4.根据权利要求3所述的方法,其特征在于,所述目标时间序列模型为Prophet模型,所述第一函数为逻辑回归函数,所述第二函数为傅立叶函数,所述第三函数为单位冲激函数;

其中,所述Prophet模型还包括噪声项函数,所述噪声项函数服从高斯分布,所述噪声项函数用于表征未预测的销售额的波动信息。

5.根据权利要求4所述的方法,其特征在于,所述根据所述销售额增长趋势信息获取所述目标时间序列模型的第一函数,包括:根据所述销售额增长趋势信息获取所述目标品类商品的销售额的增长率、偏移量以及销售额最大值;

根据所述增长率、偏移量以及销售额最大值获取第一模型参数;

根据所述第一模型参数确定出所述逻辑回归函数。

优选地,所述方法还包括:

根据所述销售额增长趋势信息设置时间突变点以及所述时间突变点的主导因子;

根据所述主导因子获取所述时间突变点的增长率的变化量;

根据所述销售额增长趋势信息获取所述目标品类商品的销售额的初始增长率;

根据所述初始增长率和所述时间突变点的增长率的变化量获取所述目标品类商品的销售额的增长率。

6.根据权利要求4所述的方法,其特征在于,所述根据所述周期性信息获取所述目标时间序列模型的第二函数,包括:根据所述周期性信息获取所述目标品类商品的销售额的周期时间、周期影响因子以及傅里叶级数;

根据所述周期时间、周期影响因子以及傅里叶级数获取第二模型参数;

根据所述第二模型参数确定出所述傅立叶函数。

7.根据权利要求4所述的方法,其特征在于,所述根据所述预设时间点的销售额获取所述目标时间序列模型的第三函数,包括:获取所述预设时间点的影响时间段,获取所述影响时间段对应的影响程度值;

获取所述影响程度值的影响因子;

根据所述影响时间段对应的影响程度值以及所述影响程度值的影响因子获取第三模型参数;

根据所述第三模型参数确定出所述单位冲激函数。

8.一种商品销售额预测装置,其特征在于,所述装置包括:第一获取模块,用于获取预设时间段内目标品类商品的第一商品数据集,所述第一商品数据集包括所述目标品类商品的销售额以及所述销售额对应的时间数据;

排序模块,用于根据所述销售额对应的时间数据按照时间顺序对所述第一商品数据集中的销售额进行时间排序,得到第二商品数据集,所述第二商品数据集包括排序后的销售额以及所述排序后的销售额对应的时间数据;

确定模块,用于根据所述第二商品数据集获取目标时间序列模型,所述目标时间序列模型用于表征商品的销售额与时间数据的对应关系;

第二获取模块,用于将目标时间数据输入所述目标时间序列模型,得到所述目标时间序列模型的输出值,所述输出值为所述目标时间数据对应的目标品类商品的预测销售额。

9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

说明书 :

商品销售额预测方法、装置、计算机设备和存储介质

技术领域

[0001] 本申请涉及数据处理技术领域,特别是涉及一种商品销售额预测方法、装置、计算机设备和存储介质。

背景技术

[0002] 近年来智慧零售等新零售行业发展迅速,大型零售企业的实体门店正在以极快的速度增长,门店销售计划的制定就显得尤为重要。由于商品品类众多且门店地域、级别和定位等差异较大,为了精准营销、合理投放资源就需要对门店销售计划金额进行合理分配。目前企业会在年初由专门的计划预算部门制定门店下一年总的月度销售计划,但月度销售计划中销售金额日计划不区分商品品类。因此,为了精细化管理以及更好地完成销售计划还需要将销售金额日计划根据门店实际经营情况等精准合理地分配到各个品类上。
[0003] 目前,企业根据门店实际经营情况等通过人工操作将销售金额日计划精准合理地分配各个品类上。这样的方式,通常依靠企业员工结合业务规则和个人经验来进行人工分配。尤其是销售金额日计划还需要根据各个品类的商品的过往销售额预测未来销售额进行计划,通过人工经验根据各个品类的商品的过往销售额预测未来销售额以进行销售金额日计划的人工分配,不仅导致工作量大、效率低,而且分配结果的准确性也不高。

发明内容

[0004] 基于此,有必要针对上述技术问题,提供一种能够自动化对商品销售额进行预测以提高商品销售额预测效率的商品销售额预测方法、装置、计算机设备和存储介质。
[0005] 一种商品销售额预测方法,该方法包括:获取预设时间段内目标品类商品的第一商品数据集,第一商品数据集包括目标品类商品的销售额以及销售额对应的时间数据;根据销售额对应的时间数据按照时间顺序对第一商品数据集中的销售额进行时间排序,得到第二商品数据集,第二商品数据集包括排序后的销售额以及排序后的销售额对应的时间数据;根据第二商品数据集获取目标时间序列模型,目标时间序列模型用于表征商品的销售额与时间数据的对应关系;将目标时间数据输入目标时间序列模型,得到目标时间序列模型的输出值,输出值为目标时间数据对应的目标品类商品的预测销售额。
[0006] 在其中一个实施例中,商品销售额预测方法还包括:获取预设数量的目标品类商品的预测销售额;根据各目标品类商品的预测销售额确定各目标品类商品的占比;获取目标时间数据对应的计划总销售额;根据预设总销售额以及各目标品类商品的占比确定各目标品类商品的计划销售额。
[0007] 在其中一个实施例中,根据第二商品数据集获取目标时间序列模型,包括:根据第二商品数据集获取目标品类商品的销售额增长趋势信息,根据销售额增长趋势信息获取目标时间序列模型的第一函数;根据第二商品数据集获取目标品类商品的销售额的周期性信息,根据周期性信息获取目标时间序列模型的第二函数;根据第二商品数据集获取目标品类商品的预设时间点的销售额,根据预设时间点的销售额获取目标时间序列模型的第三函数;根据第一函数、第二函数和第三函数获取目标时间序列模型。
[0008] 在其中一个实施例中,目标时间序列模型为Prophet模型,第一函数为逻辑回归函数,第二函数为傅立叶函数,第三函数为单位冲激函数;其中,Prophet模型还包括噪声项函数,噪声项函数服从高斯分布,噪声项函数用于表征未预测的销售额的波动信息。
[0009] 在其中一个实施例中,根据销售额增长趋势信息获取目标时间序列模型的第一函数,包括:根据销售额增长趋势信息获取目标品类商品的销售额的增长率、偏移量以及销售额最大值;根据增长率、偏移量以及销售额最大值获取第一模型参数;根据第一模型参数确定出逻辑回归函数;优选地,商品销售额预测方法还包括:根据销售额增长趋势信息设置时间突变点以及时间突变点的主导因子;根据主导因子获取时间突变点的增长率的变化量;根据销售额增长趋势信息获取目标品类商品的销售额的初始增长率;根据初始增长率和时间突变点的增长率的变化量获取目标品类商品的销售额的增长率。
[0010] 在其中一个实施例中,根据周期性信息获取目标时间序列模型的第二函数,包括:根据周期性信息获取目标品类商品的销售额的周期时间、周期影响因子以及傅里叶级数;
根据周期时间、周期影响因子以及傅里叶级数获取第二模型参数;根据第二模型参数确定出傅立叶函数。
[0011] 在其中一个实施例中,根据预设时间点的销售额获取目标时间序列模型的第三函数,包括:获取预设时间点的影响时间段,获取影响时间段对应的影响程度值;获取影响程度值的影响因子;根据影响时间段对应的影响程度值以及影响程度值的影响因子获取第三模型参数;根据第三模型参数确定出单位冲激函数。
[0012] 一种商品销售额预测装置,该装置包括:第一获取模块,用于获取预设时间段内目标品类商品的第一商品数据集,第一商品数据集包括目标品类商品的销售额以及销售额对应的时间数据;排序模块,用于根据销售额对应的时间数据按照时间顺序对第一商品数据集中的销售额进行时间排序,得到第二商品数据集,第二商品数据集包括排序后的销售额以及排序后的销售额对应的时间数据;确定模块,用于根据第二商品数据集获取目标时间序列模型,目标时间序列模型用于表征商品的销售额与时间数据的对应关系;第二获取模块,用于将目标时间数据输入目标时间序列模型,得到目标时间序列模型的输出值,输出值为所述目标时间数据对应的目标品类商品的预测销售额。
[0013] 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例方法的步骤。
[0014] 一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例方法的步骤。
[0015] 上述商品销售额预测方法、装置、计算机设备和存储介质,服务器获取预设时间段内目标品类商品的第一商品数据集,第一商品数据集包括目标品类商品的销售额以及销售额对应的时间数据,根据销售额对应的时间数据按照时间顺序对第一商品数据集中的销售额进行时间排序,得到第二商品数据集,第二商品数据集包括排序后的销售额以及排序后的销售额对应的时间数据。进一步地,根据第二商品数据集确定目标时间序列模型,将目标时间数据输入目标时间序列模型,得到目标时间序列模型的输出值,输出值为目标时间数据对应的目标品类商品的预测销售额。因此,服务器可以通过预设时间序列模型直接得到目标时间数据对应的目标品类商品的预测销售额,无需人工判断,提高了商品销售额的预测效率。此外,与人工判断相比,通过目标时间序列模型得到的目标时间数据对应的目标品类商品的预测销售额准确性更高。

附图说明

[0016] 图1为一个实施例中一种商品销售额预测方法的应用环境图;
[0017] 图2为一个实施例中一种商品销售额预测方法的流程示意图;
[0018] 图3为另一个实施例中一种商品销售额预测方法的流程示意图;
[0019] 图4为一个实施例中步骤S106的方法流程示意图;
[0020] 图5为一个应用场景中的一种商品销售额预测方法的流程示意图;
[0021] 图6为一个实施例中一种品类商品的销售额数据的时间序列的趋势图;
[0022] 图7为一个实施例中一种品类商品的销售额预测效果示意图;
[0023] 图8为一个实施例中一种商品销售额预测装置的结构框图;
[0024] 图9为一个实施例中计算机设备的内部结构图。

具体实施方式

[0025] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0026] 本申请提供的一种商品销售额预测方法,应用于如图1所示的应用环境中。如图1所示,服务器104用于实现本申请的一种商品销售额预测方法。具体地,用户通过终端102向服务器104上传各品类商品的商品数据。商品数据中包括各品类商品的销售额以及销售额对应的时间数据。服务器104接收到各品类商品的商品数据并根据各品类商品的商品数据实现商品销售额预测方法。在实现商品销售额预测方法时,服务器104获取预设时间段内目标品类商品的第一商品数据集,第一商品数据集包括目标品类商品的销售额以及销售额对应的时间数据。进一步地,根据销售额对应的时间数据按照时间顺序对第一商品数据集中的销售额进行时间排序,得到第二商品数据集,第二商品数据集包括排序后的销售额以及排序后的销售额对应的时间数据,再根据第二商品数据集获取目标时间序列模型,目标时间序列模型用于表征商品的销售额与时间数据的对应关系。最后,将目标时间数据输入目标时间序列模型,得到目标时间序列模型的输出值,输出值为目标时间数据对应的目标品类商品的预测销售额。服务器104可以将得到的目标品类商品的预测销售额通过网络连接发送给对应的终端,以供终端用户能够参考目标品类商品的预测销售额对目标品类商品进行销售策划。其中,终端102可以是一个或多个,服务器104可以是一个或者多个服务器构建的服务器集群实现。
[0027] 在一个实施例中,如图2所示,提供了一种商品销售额预测方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
[0028] S102,获取预设时间段内目标品类商品的第一商品数据集,第一商品数据集包括目标品类商品的销售额以及销售额对应的时间数据。
[0029] 在本实施例中,服务器获取预设时间段内目标品类商品的第一商品数据集。获取的方式可以是,从大数据平台利用Spark技术获取与预测时间段相邻的历史时间段的门店中目标品类商品的销售额,并生成目标品类商品的第一商品数据集。其中,预测时间段为后续商品销售额预测时输入目标时间序列模型的目标时间数据对应的时间段,预测时间段相邻的历史时间段为上述预设时间段。第一商品数据集中除了目标品类商品的销售额之外,还包括销售额对应的时间数据。具体地,预测时间段和历史时间段均为连续时间段,第一商品数据集包含日期、商品品类以及对应的销售额。也即是,第一商品数据集包括目标品类商品在历史时间段内每天的销售额。
[0030] S104,根据销售额对应的时间数据按照时间顺序对第一商品数据集中的销售额进行时间排序,得到第二商品数据集,第二商品数据集包括排序后的销售额以及排序后的销售额对应的时间数据。
[0031] 在本实施例中,服务器按照时间顺序对第一商品数据集中的销售额进行时间排序,具体为按照从距离当前时间由远到近进行排列。同时,将排序后的销售额与其对应的时间数据进行关联。将关联的时间数据与销售额作为第二商品数据集中的数据。此外,还可以将排序后的销售额进行归一化处理,此时第二商品数据集中排序后的销售额为归一化处理后的销售额。具体地,对目标品类商品的销售额进行预处理,主要是对销售额进行均值归一化,从而有利于预测结果的稳定性。此处,均值归一化是一种归一化方法,具体是将一个序列(销售额数列)的每个元素(销售额)减去这个序列的平均值再除以这个序列的标准差。
[0032] S106,根据第二商品数据集获取目标时间序列模型,目标时间序列模型用于表征商品的销售额与时间数据的对应关系。
[0033] 在本实施例中,服务器采用时间序列模型对商品数据集(包括销售额和时间数据)进行处理。具体地,服务器根据第二商品数据集获取目标时间序列模型。目标时间序列模型可以是预先存储在服务器中的时间序列模型,也可以是临时训练得到时间序列模型,或者是根据第二商品数据集临时构建的时间序列模型。该目标时间序列模型用于表征商品的销售额与时间数据的对应关系,当向目标时间序列模型输入时间数据时,目标时间序列模型输入该时间数据对应的销售额。其中,目标时间序列模型可以是Prophet模型。
[0034] S108,将目标时间数据输入目标时间序列模型,得到目标时间序列模型的输出值,输出值为目标时间数据对应的目标品类商品的预测销售额。
[0035] 在本实施例中,服务器获取目标时间数据,并将目标时间数据输入到目标时间序列模型时,得到目标时间序列模型的输出值。该输出值为目标时间数据对应的目标品类商品的预测销售额。其中,目标时间数据可以是终端用户输入的任一时间数据。一般地,目标时间数据为未来的时间数据,从而可以实现对目标品类商品的未来的销售额进行预测。例如,目标时间数据可以是当前时间往后的未来任一时间数据,如明天、后天等时间数据。
[0036] 上述商品销售额预测方法,服务器获取预设时间段内目标品类商品的第一商品数据集,第一商品数据集包括目标品类商品的销售额以及销售额对应的时间数据,根据销售额对应的时间数据按照时间顺序对第一商品数据集中的销售额进行时间排序,得到第二商品数据集,第二商品数据集包括排序后的销售额以及排序后的销售额对应的时间数据。进一步地,根据第二商品数据集确定目标时间序列模型,将目标时间数据输入目标时间序列模型,得到目标时间序列模型的输出值,输出值为目标时间数据对应的目标品类商品的预测销售额。因此,服务器可以通过预设时间序列模型直接得到目标时间数据对应的目标品类商品的预测销售额,无需人工判断,提高了商品销售额的预测效率。此外,与人工判断相比,通过目标时间序列模型得到的目标时间数据对应的目标品类商品的预测销售额准确性更高。
[0037] 在一实施例中,如图3所示,步骤S108之后,还包括:
[0038] S110,获取预设数量的目标品类商品的预测销售额。
[0039] S112,根据各目标品类商品的预测销售额确定各目标品类商品的占比。
[0040] S114,获取目标时间数据对应的计划总销售额。
[0041] S116,根据预设总销售额以及各目标品类商品的占比确定各目标品类商品的计划销售额。
[0042] 在该实施例中,目标品类商品为多个,分别采用上述步骤S102至步骤S108的方式获取每个目标品类商品对应的预测销售额。服务器分别获取预设数量的目标品类商品的预测销售额,根据各目标品类商品的预测销售额以及预设数量可以确定各目标品类商品的占比。同时,获取目标时间数据对应的计划总销售额,该计划总销售额为预测该预设数量的目标品类商品总共需要完成的总销售额。最终根据预设总销售额以及各目标品类商品的占比确定各目标品类商品的计划销售额。也即是,当给定预设总销售额时,可以确定各目标品类商品的计划销售额,因此可以根据各目标品类商品的计划销售额对各目标品类商品进行合理的销售规划,从而提高商品销售规划的准确性。
[0043] 例如,将预测的日期范围输入到目标时间序列模型可得到预测结果。根据某一日期(目标时间数据)每个目标品类商品的预测销售额计算每个目标品类商品的占比,然后根据占比来分配总的日计划销售额。假设某门店在日期t的总计划销售额为Ct,共有N个品类,根据目标时间序列模型预测第i个目标品类商品在日期t的销售额为yti, 为第i个目标品类所占百分比,则第i个目标品类商品分配的计划销售额zti为:
[0044]
[0045] 在一个实施例中,如图4所示,步骤S106还包括:
[0046] S1062,根据第二商品数据集获取目标品类商品的销售额增长趋势信息,根据销售额增长趋势信息获取目标时间序列模型的第一函数。
[0047] S1064,根据第二商品数据集获取目标品类商品的销售额的周期性信息,根据周期性信息获取目标时间序列模型的第二函数。
[0048] S1066,根据第二商品数据集获取目标品类商品的预设时间点的销售额,根据预设时间点的销售额获取目标时间序列模型的第三函数。
[0049] S1068,根据第一函数、第二函数和第三函数获取目标时间序列模型。
[0050] 在该实施例中,对于目标时间序列模型,可以根据第二商品数据集获取目标品类商品的销售额增长趋势信息、目标品类商品的销售额的周期性信息以及目标品类商品的预设时间点的销售额进行确定。具体地,根据第二商品数据集分别获取目标品类商品的销售额增长趋势信息、销售额的周期性信息以及预设时间点的销售额,进而根据销售额增长趋势信息获取目标时间序列模型的第一函数、根据周期性信息获取目标时间序列模型的第二函数以及根据预设时间点的销售额获取目标时间序列模型的第三函数。最终根据第一函数、第二函数和第三函数获取目标时间序列模型。其中,目标时间序列模型可以包含第一函数、第二函数和第三函数的时间序列模型,还可以是根据第一函数、第二函数和第三函数确定但不包含第一函数、第二函数和第三函数的时间序列模型。因此,确定出的目标时间序列模型符合目标品类商品的商品特点,根据该目标时间序列模型得到的目标品类商品的预测销售额更加准确。
[0051] 在一实施例中,目标时间序列模型为Prophet模型,第一函数为逻辑回归函数,第二函数为傅立叶函数,第三函数为单位冲激函数;其中,Prophet模型还包括噪声项函数,噪声项函数服从高斯分布,噪声项函数用于表征未预测的销售额的波动信息。
[0052] 具体地,对每个目标品类商品的历史销售额数据(第二商品数据集)进行趋势分析,以便根据分析结果进行确定Prophet模型中各函数以及各函数的参数。其中,Prophet模型将时间序列分解成增长趋势项、季节项、节假日项以及剩余项。其中,采用上述第一函数表征增长趋势项、第二函数表征季节项以及采用第三函数表征节假日项。Prophet模型的整体构建如下:
[0053] y(t)=g(t)+s(t)+h(t)+εt;
[0054] 其中,g(t)表示增长趋势项,用来拟合时间序列中预测值的非周期性变化;s(t)表示季节项,或者成为周期项,一般以周或者年为单位;h(t)表示节假日项,用来拟合潜在的具有非固定周期的节假日对预测值造成的影响;εt是剩余项或者噪声项,表示模型未预测到的波动,并且服从高斯分布。
[0055] 由此看出Prophet模型是一种广义加性(Generalized Additive Model,GAM)的模型,不同于以往的时间序列预测模型(例如ARIMA),上述的Prophet模型将预测问题视作曲线拟合问题。
[0056] 在一个实施例中,步骤S1062包括:根据销售额增长趋势信息获取目标品类商品的销售额的增长率、偏移量以及销售额最大值;根据增长率、偏移量以及销售额最大值获取第一模型参数;根据第一模型参数确定出逻辑回归函数。优选地,增长率根据以下方式确定:
[0057] 根据销售额增长趋势信息设置时间突变点以及时间突变点的主导因子;根据主导因子获取时间突变点的增长率的变化量;根据销售额增长趋势信息获取目标品类商品的销售额的初始增长率;根据初始增长率和时间突变点的增长率的变化量获取目标品类商品的销售额的增长率。
[0058] 具体地,增长趋势项的参数设置为:根据历史销售额数据长期增长趋势分析结果确定第一函数为线性函数还是非线性函数。如果是线性函数,
[0059] g(t)模型为:
[0060] g(t)=kt+b;
[0061] 其中k表示增长率;b表示偏移量。
[0062] 如果是非线性函数,则采用逻辑回归的模型,具体如下:
[0063]
[0064] 其中,C标识承载量,其限定了所能增长的最大值;k表示增长率;b表示偏移量;
[0065] 对于增长趋势项中的时间突变点(changepoint)参数设置:根据历史销售额数据长期增长趋势分析结果设置changepoints和changepoint_prior_scale两个参数。changepoints表示用户指定潜在的突变点位置(日期),changepoint_prior_scale表示时间突变点主导因子,可以设置默认值:0.05。
[0066] 在实际的时间序列中,曲线的走势不会一直保持不变,在某些特定的时间点曲线走势会发生突变,这种特定的时间点就是突变点。在Prophet模型里,需要设置突变点的位置的,而每一段的趋势和走势也是会根据突变点的情况而改变。假设已经放置了S个突变点(changepoints)了,并且突变点的位置是在时间戳sj上,1≤j≤S,那么在这些时间戳上需要给出增长率的变化,δj∈ 表示在时间戳sj上的增长率的变化量。如果初始增长率是k,那么在时间戳t上的增长率就是 其中δj服从拉普拉斯分布Laplace(0,changepoint_prior_scale)。
[0067] 在一个实施例中,步骤S1064包括:根据周期性信息获取目标品类商品的销售额的周期时间、周期影响因子以及傅里叶级数;根据周期时间、周期影响因子以及傅里叶级数获取第二模型参数;根据第二模型参数确定出傅立叶函数。
[0068] 具体地,季节趋势参数设置为:根据历史销售额数据季节趋势分析结果设置季节周期、傅里叶级数和季节主导因子prior_scale(可设置默认值为10)。季节趋势参数设置的目的为:观察时间序列是否有明显随着周、月、年等季节而发生明显的周期性变化。因为时间序列通常会随着天、周、月、年等季节性的变化而呈现季节性的变化,也称为周期性的变化。此处,Prophet模型也会考虑这个因素。Prophet模型中使用傅立叶级数来模拟时间序列的周期性,假设P表示时间序列的周期,P=365.25表示以年为周期,P=7表示以周为周期,则季节项的傅立叶级数的形式是:
[0069]
[0070] 其中an和bn为常数,分别表示不同周期成分的最大振幅。
[0071] 通常对于以年为周期的序列P=365.25,傅立叶阶数N=10,对于以周为周期的序列P=7,傅立叶阶数N=3。此外,季节主导因子prior_scale的值越大,表示季节的效应越明显,这个值越小,表示季节的效应越不明显。
[0072] 在一个实施例中,步骤S1066包括:获取预设时间点的影响时间段,获取影响时间段对应的影响程度值;获取影响程度值的影响因子;根据影响时间段对应的影响程度值以及影响程度值的影响因子获取第三模型参数;根据第三模型参数确定出单位冲激函数。
[0073] 在该实施例中,预设时间点可以是节假日日期,预设时间点的影响时间段是节假日日期的前后影响范围(节假日前后的几天)。影响时间段对应的影响程度值表示节假日的影响程度。影响程度值的影响因子为节假日主导因子holidays_prior_scale(默认值10)。
[0074] 具体地,节假日参数设置:根据历史销售额数据节假日趋势分析结果设置节假日日期和前后影响范围(节假日前后的几天)holidays,此外还要设置节假日主导因子holidays_prior_scale(默认值10)。例如双十一节日或者一些特殊节假日,可以设置某些天数是节假日,并且设置它的前后影响范围,由于每个节假日对时间序列的影响程度不一样,不同的节假日可以看成相互独立的模型,并且可以为不同的节假日设置不同的前后窗口值,表示该节假日会影响前后一段时间的时间序列;
[0075] 用数学语言描述,假设有L个节假日,Di表示第i个节假日的日期窗口,κi表示节假日的影响程度,那么节假日项可以表示为:
[0076]
[0077] 其中, 表示日期t在节假日Di范围内才会考虑该节假日的影响,κi受到节假日主导因子holidays_prior_scale的影响,值越大表示节假日效应对模型的影响越大。
[0078] 综上,可以确定出Prophet模型以及Prophet模型的参数。接下来需要针对Prophet模型进行函数拟合。这里采用一种数值优化方法BFGS来进行函数的拟合,拟合完成后保存模型,由于该优化方法是已经非常成熟的方法,这里不再详细阐述。
[0079] 与传统方法相比,本申请实施例采用的一种商品销售额预测方法的优点有:
[0080] 1、对比传统的时间序列预测方法ARIMA,本申请中基于Prophet模型的时间序列模型将预测问题视作曲线拟合问题,对时序数据的稳定性没有过多要求,同时对于数据中存在缺失值和异常值的情况不需要进行预先处理。
[0081] 2、模型灵活度高,许多具有不同周期以及不同假设的季节性趋势能很容易的被引入,包括618、818和双11等促销活动。
[0082] 3、模型预测准确性高,平均绝对百分比误差在25%以内,且模型中参数的可解释性很强,可以让使用者根据启发来增强某部分假设。
[0083] 4、本申请提供的Prophet模型可以采用迭代滚动预测,可以通过拟合好的模型中输入最新的数据来预测后续时间段的销售额,模型参数也不需要每天都去更新,通常可以设定一个阈值,如每周或每个月加上最新的数据重新拟合一次模型,Prophet模型的增长趋势、季节趋势和节假日参数具有较好的适用性,一般无需频繁更改。
[0084] 以下针对上述实施例的一种商品销售额预测方法进行进一步的举例说明。结合图5流程图进行参考,本申请采用的一种商品销售额预测方法在一应用场景中,包括以下步骤:
[0085] 步骤1:从大数据平台利用Spark技术获取与预测时间段相邻的历史时间段的门店商品销售额数据,并生成每个品类的商品销售额数据集。
[0086] 具体地,获取的是某门店2017年1月1日到2019年7月31日的商品销售额数据,主要包括冰洗、空调、电脑、通讯、数码5个品类,并生成每个品类的商品销售额数据集,数据集中每一行分别是日期和对应的日销售额。
[0087] 步骤2:对商品销售额数据集进行预处理,主要是对销售额字段进行均值归一化,有利于预测结果的稳定性。
[0088] 其中,均值归一化是一种归一化方法,具体是将一个序列的每个元素减去这个序列的平均值再除以这个序列的标准差。
[0089] 步骤3:对每个品类的历史销售额数据进行趋势分析,以便根据分析结果进行后续步骤中Prophet模型输入参数的设置。
[0090] 本实施例中以冰洗品类为例,可以画出对应的时间序列的趋势图如图6所示,观察可以发现长期增长趋势是非线性变化的,且存在最大承载量,趋势图上能发现很多增长率突变的时间点,同时也存在明显的周期性,每年的变化是类似的,另外在某些节假日或者促销活动日销售额也有明显增加。
[0091] 步骤4:增长趋势参数设置:根据历史销售额数据长期增长趋势分析结果是线性还是非线性来设置对应参数。此外非线性趋势还要设置C参数,C表示承载量。
[0092] 本实施例中以冰洗品类为例,根据步骤3中对长期增长趋势的分析结果为非线性变化,所以应该将参数设置为非线性的参数,此外承载量C可以设置为历史单日销售额的最大值778806.45。
[0093] 步骤5:突变点(changepoint)参数设置:这里需要根据历史销售额数据长期增长趋势分析结果设置changepoints和changepoint_prior_scal两个参数。
[0094] 本实施例中以冰洗品类为例,根据步骤3中趋势分析可以找到增长率明显突变的时间点changepoints=[‘2017-04-14’、‘2017-07-28’、‘2017-08-11’、‘2017-10-01’、‘2017-11-03’、‘2018-03-09’、‘2018-05-18’、‘2018-08-10’、‘2018-09-28’、‘2019-03-15’];突变点主导因子changepoint_prior_scale可以设置为默认值0.05。
[0095] 步骤6:季节趋势参数设置:根据历史销售额数据季节趋势分析结果设置季节周期P、傅里叶阶数N和季节主导因子prior_scale(默认值10),主要是观察序列是否有明显随着周、月、年等季节而发生明显的周期性变化。
[0096] 本实施例中以冰洗品类为例,根据步骤3中趋势分析可以发现时间序列有明显随着天、月的变化而呈现季节性的变化的现象,因此对于天的季节参数可以设置为:周期长度P=365.25、傅里叶阶数N=10、季节主导因子prior_scale=10;对于月的季节参数可以设置为:周期长度P=30.5,傅里叶阶数N=5,季节主导因子prior_scale=5。
[0097] 步骤7:节假日参数设置:根据历史销售额数据节假日趋势分析结果设置节假日日期和前后影响范围(节假日前后的几天)holidays,此外还要设置节假日主导因子holidays_prior_scale(默认值10)。
[0098] 本实施例中节假日列表的事件日均为中国法定节假日(特指节假日当天)以及电商领域流行的促销活动日,比如元旦、劳动节、国庆节和双十一等,以及上述节日中元旦和劳动节的节后2天,国庆节的节后6天,双十一的节前1天和节后1天,构建了如表1所示的节假日列表,其他可行的实施例中,不限制与前后1天或2天或6天,可以设置为其他值;同时也不限于常见的促销活动日,还可以包括门店自身举办的促销活动日以及新品发布日等;节假日主导因子holidays_prior_scale设置为10。节假日列表参见表1所示:
[0099] 表1:
[0100]
[0101] 步骤8:模型拟合,本实施例中以冰洗品类为例,根据步骤3-7设置完参数后,输入步骤2得到的2017年1月1月到2019年7月31日的商品销售额数据集,时间序列模型可以通过增长趋势项、季节项和节假日项来构建,下一步采用BFGS数值优化方法来进行函数的拟合,拟合完成后保存模型。
[0102] 步骤9:模型预测及销售计划分配,本实施例中以冰洗品类为例。根据步骤8中得到的时间序列模型预测2019年8月份的销售额,具体预测效果如图7所示。直观上看,该模型达到了良好的预测精度,增长趋势基本保持一致,根据预测值和真实值计算得到平均绝对误差MAE=26557.9和平均绝对百分比误差MAPE=24.7%。
[0103] 同理可以得到该门店其他品类在2019年8月份销售额的预测结果,假设该门店在2019年8月某一天t的总计划销售额为Ct,共有N个品类,根据模型预测第i个品类在日期t的销售额为yti,则按比例分配得到第i个品类分配的计划销售额zti为:
[0104]
[0105] 因此,通过Prophet模型预测门店各个品类商品的日销售额,然后计算出各个品类销售额的占比情况,因此可以根据占比情况对原本计划的总的日销售额按照品类进行分配。
[0106] 应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,附图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0107] 本申请还提供一种商品销售额预测装置,如图8所示,该装置包括第一获取模块10、排序模块20、确定模块30以及第二获取模块40。
[0108] 第一获取模块10,用于获取预设时间段内目标品类商品的第一商品数据集,第一商品数据集包括目标品类商品的销售额以及销售额对应的时间数据;排序模块20,用于根据销售额对应的时间数据按照时间顺序对第一商品数据集中的销售额进行时间排序,得到第二商品数据集,第二商品数据集包括排序后的销售额以及排序后的销售额对应的时间数据;确定模块30,用于根据第二商品数据集获取目标时间序列模型,目标时间序列模型用于表征商品的销售额与时间数据的对应关系;第二获取模块40,用于将目标时间数据输入目标时间序列模型,得到目标时间序列模型的输出值,输出值为所述目标时间数据对应的目标品类商品的预测销售额。
[0109] 在其中一个实施例中,商品销售额预测装置可以包括(图8未示出):第三获取模块,用于获取预设数量的目标品类商品的预测销售额;占比确定模块,用于根据各目标品类商品的预测销售额确定各目标品类商品的占比;第四获取模块,用于获取目标时间数据对应的计划总销售额;销售额确定模块,用于根据预设总销售额以及各目标品类商品的占比确定各目标品类商品的计划销售额。
[0110] 在其中一个实施例中,确定模块30可以包括(图8未示出):第一函数确定单元,用于根据第二商品数据集获取目标品类商品的销售额增长趋势信息,根据销售额增长趋势信息获取目标时间序列模型的第一函数;第二函数确定单元,用于根据第二商品数据集获取目标品类商品的销售额的周期性信息,根据周期性信息获取目标时间序列模型的第二函数;第三函数确定单元,用于根据第二商品数据集获取目标品类商品的预设时间点的销售额,根据预设时间点的销售额获取目标时间序列模型的第三函数;模型确定单元,用于根据第一函数、第二函数和第三函数获取目标时间序列模型。
[0111] 在其中一个实施例中,第一函数确定单元包括:第一获取子单元,用于根据销售额增长趋势信息获取目标品类商品的销售额的增长率、偏移量以及销售额最大值;第二获取子单元,用于根据增长率、偏移量以及销售额最大值获取第一模型参数;第一确定子单元,用于根据第一模型参数确定出逻辑回归函数;优选地,商品销售额预测装置还包括:设置模块,用于根据销售额增长趋势信息设置时间突变点以及时间突变点的主导因子;第五获取模块,用于根据主导因子获取时间突变点的增长率的变化量;第六获取模块,用于根据销售额增长趋势信息获取目标品类商品的销售额的初始增长率;第七获取模块,用于根据初始增长率和时间突变点的增长率的变化量获取目标品类商品的销售额的增长率。
[0112] 在其中一个实施例中,第二函数确定单元包括:第三获取子单元,用于根据周期性信息获取目标品类商品的销售额的周期时间、周期影响因子以及傅里叶级数;第四获取子单元,用于根据周期时间、周期影响因子以及傅里叶级数获取第二模型参数;第二确定子单元,用于根据第二模型参数确定出傅立叶函数。
[0113] 在其中一个实施例中,第三函数确定单元包括:第五获取子单元,用于获取预设时间点的影响时间段,获取影响时间段对应的影响程度值;第六获取子单元,用于获取影响程度值的影响因子;第七获取子单元,用于根据影响时间段对应的影响程度值以及影响程度值的影响因子获取第三模型参数;第三确定子单元,用于根据第三模型参数确定出单位冲激函数。
[0114] 关于商品销售额预测装置的具体限定可以参见上文中对于商品销售额预测方法的限定,在此不再赘述。上述商品销售额预测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0115] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端连接,以读取终端上的各品类商品的商品数据。该计算机程序被处理器执行时以实现一种商品销售额预测方法。
[0116] 本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0117] 在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取预设时间段内目标品类商品的第一商品数据集,第一商品数据集包括目标品类商品的销售额以及销售额对应的时间数据;根据销售额对应的时间数据按照时间顺序对第一商品数据集中的销售额进行时间排序,得到第二商品数据集,第二商品数据集包括排序后的销售额以及排序后的销售额对应的时间数据;根据第二商品数据集获取目标时间序列模型,目标时间序列模型用于表征商品的销售额与时间数据的对应关系;将目标时间数据输入目标时间序列模型,得到目标时间序列模型的输出值,输出值为目标时间数据对应的目标品类商品的预测销售额。
[0118] 在其中一个实施例中,处理器执行计算机程序时实现以下步骤:获取预设数量的目标品类商品的预测销售额;根据各目标品类商品的预测销售额确定各目标品类商品的占比;获取目标时间数据对应的计划总销售额;根据预设总销售额以及各目标品类商品的占比确定各目标品类商品的计划销售额。
[0119] 在其中一个实施例中,处理器执行计算机程序实现上述的根据第二商品数据集获取目标时间序列模型的步骤时,具体实现以下步骤:根据第二商品数据集获取目标品类商品的销售额增长趋势信息,根据销售额增长趋势信息获取目标时间序列模型的第一函数;根据第二商品数据集获取目标品类商品的销售额的周期性信息,根据周期性信息获取目标时间序列模型的第二函数;根据第二商品数据集获取目标品类商品的预设时间点的销售额,根据预设时间点的销售额获取目标时间序列模型的第三函数;根据第一函数、第二函数和第三函数获取目标时间序列模型。
[0120] 在其中一个实施例中,目标时间序列模型为Prophet模型,第一函数为逻辑回归函数,第二函数为傅立叶函数,第三函数为单位冲激函数;其中,Prophet模型还包括噪声项函数,噪声项函数服从高斯分布,噪声项函数用于表征未预测的销售额的波动信息。
[0121] 在其中一个实施例中,处理器执行计算机程序实现上述的根据销售额增长趋势信息获取目标时间序列模型的第一函数的步骤时,具体实现以下步骤:根据销售额增长趋势信息获取目标品类商品的销售额的增长率、偏移量以及销售额最大值;根据增长率、偏移量以及销售额最大值获取第一模型参数;根据第一模型参数确定出逻辑回归函数;优选地,处理器执行计算机程序时还实现以下步骤:根据销售额增长趋势信息设置时间突变点以及时间突变点的主导因子;根据主导因子获取时间突变点的增长率的变化量;根据销售额增长趋势信息获取目标品类商品的销售额的初始增长率;根据初始增长率和时间突变点的增长率的变化量获取目标品类商品的销售额的增长率。
[0122] 在其中一个实施例中,处理器执行计算机程序实现上述的根据周期性信息获取目标时间序列模型的第二函数的步骤时,具体实现以下步骤:根据周期性信息获取目标品类商品的销售额的周期时间、周期影响因子以及傅里叶级数;根据周期时间、周期影响因子以及傅里叶级数获取第二模型参数;根据第二模型参数确定出傅立叶函数。
[0123] 在其中一个实施例中,处理器执行计算机程序实现上述的根据预设时间点的销售额获取目标时间序列模型的第三函数的步骤时,具体实现以下步骤:获取预设时间点的影响时间段,获取影响时间段对应的影响程度值;获取影响程度值的影响因子;根据影响时间段对应的影响程度值以及影响程度值的影响因子获取第三模型参数;根据第三模型参数确定出单位冲激函数。
[0124] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取预设时间段内目标品类商品的第一商品数据集,第一商品数据集包括目标品类商品的销售额以及销售额对应的时间数据;根据销售额对应的时间数据按照时间顺序对第一商品数据集中的销售额进行时间排序,得到第二商品数据集,第二商品数据集包括排序后的销售额以及排序后的销售额对应的时间数据;根据第二商品数据集获取目标时间序列模型,目标时间序列模型用于表征商品的销售额与时间数据的对应关系;将目标时间数据输入目标时间序列模型,得到目标时间序列模型的输出值,输出值为目标时间数据对应的目标品类商品的预测销售额。
[0125] 在其中一个实施例中,计算机程序被处理器执行时实现以下步骤:获取预设数量的目标品类商品的预测销售额;根据各目标品类商品的预测销售额确定各目标品类商品的占比;获取目标时间数据对应的计划总销售额;根据预设总销售额以及各目标品类商品的占比确定各目标品类商品的计划销售额。
[0126] 在其中一个实施例中,计算机程序被处理器执行实现上述的根据第二商品数据集获取目标时间序列模型的步骤时,具体实现以下步骤:根据第二商品数据集获取目标品类商品的销售额增长趋势信息,根据销售额增长趋势信息获取目标时间序列模型的第一函数;根据第二商品数据集获取目标品类商品的销售额的周期性信息,根据周期性信息获取目标时间序列模型的第二函数;根据第二商品数据集获取目标品类商品的预设时间点的销售额,根据预设时间点的销售额获取目标时间序列模型的第三函数;根据第一函数、第二函数和第三函数获取目标时间序列模型。
[0127] 在其中一个实施例中,目标时间序列模型为Prophet模型,第一函数为逻辑回归函数,第二函数为傅立叶函数,第三函数为单位冲激函数;其中,Prophet模型还包括噪声项函数,噪声项函数服从高斯分布,噪声项函数用于表征未预测的销售额的波动信息。
[0128] 在其中一个实施例中,计算机程序被处理器执行实现上述的根据销售额增长趋势信息获取目标时间序列模型的第一函数的步骤时,具体实现以下步骤:根据销售额增长趋势信息获取目标品类商品的销售额的增长率、偏移量以及销售额最大值;根据增长率、偏移量以及销售额最大值获取第一模型参数;根据第一模型参数确定出逻辑回归函数;优选地,计算机程序被处理器执行时还实现以下步骤:根据销售额增长趋势信息设置时间突变点以及时间突变点的主导因子;根据主导因子获取时间突变点的增长率的变化量;根据销售额增长趋势信息获取目标品类商品的销售额的初始增长率;根据初始增长率和时间突变点的增长率的变化量获取目标品类商品的销售额的增长率。
[0129] 在其中一个实施例中,计算机程序被处理器执行实现上述的根据周期性信息获取目标时间序列模型的第二函数的步骤时,具体实现以下步骤:根据周期性信息获取目标品类商品的销售额的周期时间、周期影响因子以及傅里叶级数;根据周期时间、周期影响因子以及傅里叶级数获取第二模型参数;根据第二模型参数确定出傅立叶函数。
[0130] 在其中一个实施例中,计算机程序被处理器执行实现上述的根据预设时间点的销售额获取目标时间序列模型的第三函数的步骤时,具体实现以下步骤:获取预设时间点的影响时间段,获取影响时间段对应的影响程度值;获取影响程度值的影响因子;根据影响时间段对应的影响程度值以及影响程度值的影响因子获取第三模型参数;根据第三模型参数确定出单位冲激函数。
[0131] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0132] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0133] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。