时间序列模型的周期项参数优化方法、装置、计算机设备与流程

文档序号:28162326发布日期:2021-12-24 20:34阅读:337来源:国知局
时间序列模型的周期项参数优化方法、装置、计算机设备与流程

1.本技术涉及供应链产品销量预测技术领域,特别是涉及一种时间序列模型的周期项参数优化方法、装置、计算机设备和存储介质。


背景技术:

2.销量预测作为供应链管理的“第一道防线”,对于企业的生产、补货、销售计划均等有着深远的影响。对企业整体销售水平的预测,以及对重点核心产品销量的精确预测,为企业供应链的高效运转、降本增效打下了夯实的基础。目前,应用于销量预测的时序类模型中,除了arima、holt-winter外,广义可加时间序列模型(prophet模型)因其灵活、解释性强、适用场景广等优点,是重要的预测方法之一。prophet模型由周期项、节假日项、趋势项三部分组成,但周期项中的参数,即傅里叶项系数在优化过程中存在遍历计算量大、且容易过拟合的问题,限制了周期项对现实情境的拟合能力。
3.然而,目前采用枚举法对时间序列模型周期项中的傅里叶项系数进行优化周期项参数,导致使prophet模型的预测准确性低。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高时间序列模型预测准确的时间序列模型方法、装置、计算机设备和存储介质。
5.一种时间序列模型的周期项参数优化方法,所述方法包括:
6.获取表征商品历史销量的时间序列数据,根据所述时间序列数据的时长对所述时间序列数据进行分割,得到用于优化所述周期项参数的训练集和验证集;
7.当根据所述训练集和所述验证集确定所述时间序列数据存在周期性时,确定所述时间序列数据的周期类型;
8.根据所述周期类型获取所述时间序列模型中周期项参数对应的初始搜索区间值;
9.基于贝叶斯信息准则,在所述初始搜索区间值遍历所述周期项参数对应的各贝叶斯信息量值,根据所述贝叶斯信息量值确定所述周期项参数的目标参数值。
10.在其中一个实施例中,所述基于贝叶斯信息准则,在所述初始搜索区间值遍历所述周期项参数对应的各贝叶斯信息量值,根据各所述贝叶斯信息量值确定所述周期项参数的目标参数值,包括:
11.基于贝叶斯信息准则,在所述初始搜索区间值遍历所述周期项参数对应的各贝叶斯信息量值,确定当前数值最小的贝叶斯信息量值;
12.根据所述当前数值最小的贝叶斯信息量值确定所述周期项参数的目标参数值。
13.在其中一个实施例中,所述方法还包括:
14.若各所述贝叶斯信息量值在所述初始搜索区间值不满足单调递增函数关系,获取所述周期项参数的单调递增长度值和周期项参数阈值;
15.根据所述单调递增长度值和周期项参数阈值更新所述初始搜索区间,得到更新搜
索区间;
16.以所述当前数值最小的贝叶斯信息量值对应的周期项参数的参数值为起始点,预设步长值增加所述周期项参数的参数值,基于所述基于贝叶斯信息准则,在所述更新搜索区间遍历所述周期项参数对应的各候选贝叶斯信息量值;
17.若各所述候选贝叶斯信息量值大于或等于所述当前数值最小的贝叶斯信息量值,则不更新所述目标参数值;
18.若各所述候选贝叶斯信息量值中存在小于所述当前数值最小的贝叶斯信息量值时,确定所述数值最小的候选贝叶斯信息量值对应周期项参数值的候选参数值,将所述候选参数值作为目标参数值。
19.在其中一个实施例中,所述方法还包括:
20.基于贝叶斯信息准则,在所述初始搜索区间值遍历所述周期项参数对应的贝叶斯信息量值;
21.若所述贝叶斯信息量值在所述初始搜索区间值满足单调递增函数关系,将数值最小的贝叶斯信息量值对应的周期项参数的参数值作为目标参数值。
22.在其中一个实施例中,所述根据所述时间序列数据的时长对所述时间序列数据进行分割,得到用于优化所述周期项参数的训练集和验证集,包括:
23.根据所述时长对应的预设总时长区间,确定训练集和验证集的分割比值;
24.根据所述分割比值对所述时间序列数据进行分割,得到用于优化所述周期项参数的训练集和验证集。
25.在其中一个实施例中,所述时间序列数据存在周期性的确定方式包括:
26.获取所述时间序列模型中的周期性模型,通过所述训练集训练所述周期性模型,得到训练好的周期性模型;
27.通过所述验证集对所述训练好的周期性模型进行验证,得到周期参数组集;
28.若根据评价指标从所述周期参数组集中存在所述训练好的周期性模型的目标周期参数组,确定所述时间序列数据存在周期性。
29.在其中一个实施例中,所述方法还包括:
30.根据所述目标参数值和所述周期性模型的周期长度对周期模型中的参数进行拟合,得到所述周期性模型的估计参数值组,确定目标周期性模型,得到目标时间序列模型。
31.在其中一个实施例中,所述方法还包括:
32.获取用于预测商品销量的预测时间序列数据和预测时间段;
33.确定所述预测时间序列数据的预测颗粒度;
34.将所述预测时间序列数据输入至所述目标时间序列模型中,根据所述预测颗粒度确定在商品所述预测时间段的预测销量值。
35.一种时间序列模型的周期项参数优化装置,所述装置包括:
36.分割模块,获取表征商品历史销量的时间序列数据,根据所述时间序列数据的时长对所述时间序列数据进行分割,得到用于优化所述周期项参数的训练集和验证集;
37.确定模块,用于当根据所述训练集和所述验证集确定所述时间序列数据存在周期性时,确定所述时间序列数据的周期类型;获取模块,用于根据所述周期类型获取所述时间序列模型中周期项参数对应的初始搜索区间值;
38.优化模块,用于基于贝叶斯信息准则,在所述初始搜索区间值遍历所述周期项参数对应的各贝叶斯信息量值,根据所述贝叶斯信息量值确定所述周期项参数的目标参数值。
39.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
40.获取表征商品历史销量的时间序列数据,根据所述时间序列数据的时长对所述时间序列数据进行分割,得到用于优化所述周期项参数的训练集和验证集;
41.当根据所述训练集和所述验证集确定所述时间序列数据存在周期性时,确定所述时间序列数据的周期类型;
42.根据所述周期类型获取所述时间序列模型中周期项参数对应的初始搜索区间值;
43.基于贝叶斯信息准则,在所述初始搜索区间值遍历所述周期项参数对应的各贝叶斯信息量值,根据所述贝叶斯信息量值确定所述周期项参数的目标参数值。
44.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
45.获取表征商品历史销量的时间序列数据,根据所述时间序列数据的时长对所述时间序列数据进行分割,得到用于优化所述周期项参数的训练集和验证集;
46.当根据所述训练集和所述验证集确定所述时间序列数据存在周期性时,确定所述时间序列数据的周期类型;
47.根据所述周期类型获取所述时间序列模型中周期项参数对应的初始搜索区间值;
48.基于贝叶斯信息准则,在所述初始搜索区间值遍历所述周期项参数对应的各贝叶斯信息量值,根据所述贝叶斯信息量值确定所述周期项参数的目标参数值。
49.上述时间序列模型的周期项参数优化方法、装置、计算机设备和存储介质,通过对确定商品历史销量的时间序列数据的时长,根据时长对时间序列数据进行分割,得到用于优化周期项参数的训练集和验证集;根据时长划分测试集和验证集,用于准确判断时间序列数据的周期性和确定周期类型;通过周期类型获取时间序列模型中周期项参数对应的初始搜索区间值;根据初始搜索区间值和贝叶斯信息准则在设定的初始搜索区间值对周期项参数的参数值进行遍历确定目标参数值,减少遍历的次数和拟合的程度,提高的时间序列模型预测的准确性。
附图说明
50.图1为一个实施例中时间序列模型的周期项参数优化方法的应用环境图;
51.图2为一个实施例中时间序列模型的周期项参数优化方法的流程示意图;
52.图3为一个实施例中时间序列模型的周期项参数优化步骤的流程示意图;
53.图4为一个实施例中确定周期项参数的目标参数值方法的流程示意图;
54.图5为一个实施例中时间序列数据周期性判断方法的流程示意图;
55.图6为另一个实施例中时间序列模型的周期项参数优化方法的流程示意图;
56.图7为一个实施例中时间序列模型的周期项参数优化装置的结构框图;
57.图8为另一个实施例中时间序列模型的周期项参数优化装置的结构框图;
58.图9为一个实施例中计算机设备的内部结构图。
具体实施方式
59.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
60.本技术提供的时间序列模型的周期项参数优化方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102从服务器104中获取表征商品历史销量的时间序列数据,根据时间序列数据的时长对时间序列数据进行分割得到,用于优化周期项参数的训练集和验证集;当根据训练集和验证集确定时间序列数据存在周期性时,确定时间序列数据的周期类型;根据周期类型获取时间序列模型中周期项参数对应的初始搜索区间值;基于贝叶斯信息准则,在初始搜索区间值遍历周期项参数对应的各贝叶斯信息量值,根据贝叶斯信息量值确定周期项参数的目标参数值。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、平板电脑,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
61.在一个实施例中,如图2所示,提供了一种时间序列模型的周期项参数优化方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
62.步骤202,获取表征商品历史销量的时间序列数据,根据时间序列数据的时长对时间序列数据进行分割,得到用于优化周期项参数的训练集和验证集。
63.其中,时间序列数据是在不同时间上收集到的数据,可用于描述商品销量随时间变化的状态和程度。例如,从服务器中获取到表征商品历史销量的时间序列数据,每个数据中包括销售日期和销售量值,如,2019年10月1日,a商品的销量值是1000件。时间序列数据的时长是以时间颗粒度为纬度确定的,时间颗粒可以但不仅限于是以天为维度。例如,获取时间序列数据中包括2000个数据,以日度为数据颗粒度,确定2000个数据的时间序列数据的时长为30天。
64.时间序列数据的时长作为将时间序列数据分割为训练集和验证集的依据,训练集时长和验证集时长由时长所在的预设时长范围确定。时间序列模型中包括周期项、节假日项和趋势项;时间序列模型可以是prophet模型,可以表示为:
65.y(t)=g(t)+s(t)+h(t)+ε
66.其中,s(t)为周期项,g(t)为趋势项,h(t)为节假日项,∈是误差项;优化的周期项参数为周期项s(t)中的傅里叶阶数,周期项中可包括周周期、月周期和年周期以及季节性模式等。
67.具体地,终端从服务器中获取用于表征商品历史销量的时间序列数据,以日度为数据颗粒度,确定时间序列数据的时长,根据时长所对应的预设时长范围确定分割测试集和验证集的分割依据,得到用于优化周期项参数的训练集和验证集。可选地,在根据时间序列数据的时长对时间序列数据进行分割之前,判断时长是否大于或等于最小时长阈值;当时长小于最小时长阈值时,根据时间序列数据确定简单时序模型的训练集和验证集,其中,简单时序模型包括simple moving average模型和rolling 4weeks模型等;当时长大于或等于最小时长阈值时,确定时长对应的预设时长范围,根据确定的预设时长范围对时间序列数据进行分割,得到用于优化时间序列模型的周期项参数的训练集和验证集,通过判断时间序列数据的时长是否大于或等于最小时长阈值,避免数据量过少使得周期项参数不准
确,提高模型预测准确性。
68.步骤204,当根据训练集和验证集确定时间序列数据存在周期性时,确定时间序列数据的周期类型。
69.其中,周期类型包括商品销售的周周期、月周期和年周期。时间序列模型中的周期项是否存在周周期、月周期和年周期的周期类型时,可通过布尔参数值“true”和“false”来表示,每种周期类型存在“true”和“false”两种情况,其中true表示存在周期,false表示不存在周期;周期项可存在八种周期性模型,即存在对应的八个周期参数组,例如,“true,true,true”代表存在周周期、月周期和年周期,“true,false,false”代表存在周周期,不存在月周期和年周期。
70.具体地,时间序列模型中的周期项可包括周周期、月周期和年周期,根据周期项是否存在周周期、月周期和年周期中任意一种周期的情况,可确定周期项对应存在八种周期性模型。根据确定的训练集去训练八种周期性模型,得到训练好的周期性模型,即得到训练好的周期参数组集;通过将验证集输入到训练好的八种周期模性模型中,得到验证结果;根据评价指标对验证结果进行指标计算,从周期参数组集中得到评标指标值最高对应的周期参数组,即可确定时间序列数据存在周期性。其中,评价指标可包括平均绝对误差(mean absolute error,mae)、均方误差(mean square error,mse)、均方根误差(root mean square error,rmse)、平均绝对百分比误差(mean absolute percentage error,mape)中任意一种,评价指标根据商品的实际需求来确定。
71.步骤206,根据周期类型获取时间序列模型中周期项参数对应的初始搜索区间值。
72.其中,不同类型的周期对应的周期项参数对应的区间初始搜索区间值是不同的。初始搜索区间值根据贝叶斯信息量函数(bic函数)的特性确定的,bic函数呈“u型”增长。
73.具体地,基于商品销量预测业务的业务场景,以及确定的周期类型的周期长度以及对应的子周期的长度确定时间序列模型中周期项参数对应的初始搜索区间值。例如,根据确定的周期类型包括周周期和年周期,分别获取周周期和年周期对应的初始搜索区间值。其中,周周期的周期长度为7天,月周期的周期长度为30.5天,年周期的周期长度为365.25天。月周期的子周期可包括周周期,年周期的子周期可包括周周期和月周期。如表1所示,为不同类型周期对应的周期项参数的初始搜索区间值,周期项参数可以用n表示。
74.表1:
[0075][0076]
步骤208,基于贝叶斯信息准则,在初始搜索区间值遍历周期项参数对应的各贝叶斯信息量值,根据贝叶斯信息量值确定周期项参数的目标参数值。
[0077]
其中,贝叶斯信息准则可用函数关系式bic=kln(n)-2ln(l)来表示,其中,k为模型参数个数,即周期项参数;n为样本数量,l为似然函数。
[0078]
具体地,基于贝叶斯信息准则的函数特性和周期类型对应的周期长度,确定周期
项参数的初始搜索区间值,从初始搜索区间值中的最小值开始遍历,计算每个值对的贝叶斯信息量值,确定在初始搜索区间值内数值最小的贝叶斯信息量值,根据最小的贝叶斯信息量值确定周期项参数的目标参数值,即实现周期项中傅里叶阶数优化,确定时间序列模型中的目标周期性模型。例如,周期项参数为n,贝叶斯信息量值为bic值,在周期类型对应的初始搜索区间值(start_original,end_original)遍历n值所对应的bic值,确定在初始搜索区间的最小bic值,将最小bic值对应的n值作为周期项参数的目标参数值,当周期类型包括周周期、月周期和年周期时,执行上述步骤可分别确定周周期、月周期和年周期对应的目标参数值,得到周期项参数组,在此不做赘述。可选地,基于贝叶斯信息准则,在所述初始搜索区间值遍历所述周期项参数对应的各贝叶斯信息量值,确定当前数值最小的贝叶斯信息量值;根据所述当前数值最小的贝叶斯信息量值确定所述周期项参数的目标参数值。
[0079]
上述时间序列模型的周期项参数优化方法中,通过对确定商品历史销量的时间序列数据的时长,根据时长对时间序列数据进行分割,得到用于优化周期项参数的训练集和验证集;根据时长划分测试集和验证集,用于准确判断时间序列数据的周期性和确定周期类型;通过周期类型获取时间序列模型中周期项参数对应的初始搜索区间值;根据初始搜索区间值和贝叶斯信息准则在设定的初始搜索区间值对周期项参数的参数值进行遍历确定目标参数值,减少遍历的次数和拟合的程度,提高的时间序列模型预测的准确性。
[0080]
在一个实施例中,如图3所示,提供了一种时间序列模型的周期项参数优化步骤的流程示意图,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
[0081]
步骤302,获取表征商品历史销量的时间序列数据。
[0082]
步骤304,根据时间序列数据的时长将时间序列数据进行分割为训练集和验证集。
[0083]
具体地,根据时间序列数据的时长对时间序列数据进行分割,得到用于优化周期项参数的训练集和验证集。可选地,根据时间序列数据的时长对时间序列数据进行分割,得到用于优化周期项参数的训练集和验证集包括:根据时长对应的预设总时长区间,确定训练集和验证集的分割比值;根据分割比值对时间序列数据进行分割,得到用于优化周期项参数的训练集和验证集。如表3所示,本方案中的时间序列数据时长t需满足时长大于或等于21天,当时长在[21,45)天预设总时长区间时,以t-7时长对应的时间序列数据作为训练集,以时长后七天对应的时间序列数据作为验证集;当时长在[45,400)天预设总时长区间时,从70%*t时长和(t-30)天中选取值最大的时长对应的时间序列数据作为训练集,以后七天时长对应的时间序列数据作为验证集;当时长在[400,+)天预设总时长区间时,以t-30时长对应的时间序列数据作为训练集,以时长后三十天时长对应的时间序列数据作为验证集。
[0084]
可选地,在一个实施例中,在根据时间序列数据的时长将时间序列数据进行分割为训练集和验证集之前,对时间序列数据进行预处理,根据以日度为数据颗粒度对时间序列数据中的空缺项进行补零处理。
[0085]
表2:
[0086][0087]
步骤306,判断时间序列数据是否存在周期性,若是,执行步骤308,否则,结束。
[0088]
步骤308,确定时间序列数据的周期类型,根据周期类型确定周期项参数的优化范围。
[0089]
其中,周期项参数的优化范围包括初始搜索区间值、单调递增长度值和周期项参数阈值。
[0090]
具体地,当时间序列数据存在周期性时,确定时间序列数据的周期类型,根据周期类型确定对应的初始搜索区间值、单调递增长度值和周期项参数阈值。例如,时间序列数据中存在周周期和年周期,获取周周期和年周期各对应的初始搜索区间值、单调递增长度值和周期项参数阈值。
[0091]
步骤310,基于贝叶斯信息准则和周期项参数的优化范围,确定周期项参数的目标参数值。
[0092]
具体地,根据周期类型确定周期项参数的初始搜索区间值、单调递增长度值和周期项参数阈值。基于贝叶斯信息准则,从初始搜索区间值中的最小值开始遍历,计算每个值对的贝叶斯信息量值,确定在初始搜索区间值内数值最小的贝叶斯信息量值,若各贝叶斯信息量值在初始搜索区间值满足单调自增递增时,将最小的贝叶斯信息量值对应的周期项参数的参数值作为目标参数值,即实现周期项中傅里叶阶数优化。若各贝叶斯信息量值在初始搜索区间值不满足单调自增递增,根据单调递增长度值和周期项参数阈值更新初始搜索区间值,得到更新搜索区间值;以当前数值最小的贝叶斯信息量值对应的周期项参数的参数值为起始点,预设步长值增加周期项参数的参数值,基于贝叶斯信息准则,在更新搜索区间遍历周期项参数对应的各候选贝叶斯信息量值,直到在满足单调递增长度值的取值范围内,且各贝叶斯信息量值满足单调递增,各候选贝叶斯信息量值均大于当前数值最小的贝叶斯信息量值时和周期项参数阈值时,确定周期项的参数值。
[0093]
可选地,当时间序列数据中存在周期性时,在周期类型对应的初始搜索区间值(start_original,end_original)中,遍历所有周期项参数n值所对应的bic值,确定在(start_original,end_original)区间值内bic的最小值bic
current_min
,及其对应的n
current_min
值,若bic值在区间(start_original,end_original)不满足单调递增,以n
current_min
为起始点,1为预设步长值增加周期项参数n的参数值,当n的取值在n
current_min
+单调递增长度值d范围内,且bic值满足单调递增,不存在新的bic
min_new
小于bic
current_min
,即确定n
current_min
为目标参数值,若存在bic
min_new
小于bic
current_min
,将bic
min_new
的值赋值给bic
current_min
,bic
min_new
对应的n
min_new
的值赋值给n
current_min
,直到确定目标参数值。例如,当时间序列数据中存在周周期和年周期时,基于上述方法对周周期和年周期的周期项参数进行优化,确定周周期和年周期对应的目标参数值。
[0094]
上述时间序列模型的周期项参数优化步骤,通过从服务器中获取表征商品历史销量的时间序列数据,根据时间序列数据的时长对时间序列数据划分为训练集和验证集;基于网格搜索,根据训练集、验证集和评价指标确定时间序列数据是否存在周期性,并确定周期性类型;当时间时间序列数据存在周期性时,根据周期类型对应的初始搜索区间值、单调递增长度值和周期项参数阈值依次计算bic值,对周期项参数进行优化,确定各周期类型的周期项参数的目标参数值,得到目标参数值组,得到优化后的时间序列模型,减少了数据的运算量,提高了终端的处理性能,以及提高了时间序列模型的通用性。
[0095]
在一个实施例中,如图4所示,提供了一种确定周期项参数的目标参数值的方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
[0096]
步骤402,基于贝叶斯信息准则,在初始搜索区间值遍历周期项参数对应的各贝叶斯信息量值,确定当前数值最小的贝叶斯信息量值。
[0097]
步骤404,判断各贝叶斯信息量值在初始搜索区间值是否满足单调递增函数关系,若是,执行步骤406,否则执行步骤408。
[0098]
步骤406,将数值最小的贝叶斯信息量值对应的周期项参数的参数值作为目标参数值。
[0099]
步骤408,获取周期项参数的单调递增长度值和周期项参数阈值。
[0100]
其中,不同类型周期的周期项参数的单调递增长度值和周期项参数阈值是不同的,图表3所示,表3中为一个实施例中,周周期、月周期和年周期的初始搜索范围值、单调递增长度值和周期项参数阈值,即不同类型周期对应不同的初始搜索范围值、单调递增长度值和周期项参数阈值。
[0101]
具体地,根据周期类型确定周期项参数的单调递增长度值和周期项参数阈值。例如,若确定的周期类型为周周期,获取周周期的单调递增长度值(如,3)和周期项参数阈值(如,7);若确定的周期类型为月周期,获取月周期的单调递增长度值(如,4)和周期项参数阈值(如,10);若确定的周期类型为年周期,获取年周期的单调递增长度值(如,5)和周期项参数阈值(如,52)。
[0102]
表3:
[0103]
周期类型初始搜索范围值单调递增长度值d周期项参数阈值周周期[2,4]37月周期[3,6]410年周期[6,10]552
[0104]
可选地,在一个实施例中,当时间序列数据以周度、月度或年度为数据颗粒度时,确定的预测颗粒度、适用周期类型以及对应的周期项参数的单调递增长度值和周期项参数阈值是不同的。如表4所示,当时间序列数据以周度为数据颗粒度时,适用周期类型的包括年周期和月周期,其中,年周期的初始搜索范围值为[2,6],单调递增长度值为5,和周期项参数阈值为52;月周期仅存在初始搜索范围值为[2,4]。当时间序列数据以月度为数据颗粒度时,适用周期类型的仅包括年周期,其中,年周期的初始搜索范围值为[2,4],单调递增长度值为3,和周期项参数阈值为12;月周期仅存在初始搜索范围值为[2,4]。时间序列数据以年度为数据颗粒度时,不适用。
[0105]
表4:
[0106][0107]
步骤410,根据单调递增长度值和周期项参数阈值更新初始搜索区间,得到更新搜索区间值。
[0108]
具体地,各贝叶斯信息量值在初始搜索区间值(start_original,end_original)内不满足单调递增函数关系时,根据获取周期类型对应的单调递增长度值和周期项参数阈值更新初始搜索区间,得到更新搜索区间值。例如,周期类型为周周期时,遍历n初始搜索区间值[2,4]得到的bic值,在n=3时,bic值最小,在[2,4]不满足单调递增,根据周周期的单调递增长度值3和周期项参数阈值7更新初始搜索区间值,得到更新区间[3,5]。若周期类型为月周期或年周期,遍历n初始搜索区间值得到的bic值,在初始搜索区间值不满足单调递增时,根据对应的单调递增长度值和周期项参数阈值更新初始搜索区间值,得到更新区间。
[0109]
步骤412,以当前数值最小的贝叶斯信息量值对应的周期项参数的参数值为起始点,预设步长值增加周期项参数的参数值,基于贝叶斯信息准则,在更新搜索区间遍历周期项参数对应的各候选贝叶斯信息量值。
[0110]
其中,预设步长值为预先设定的数值,预设步长值可以但不仅限于是1。
[0111]
具体地,以当前数值最小的贝叶斯信息量值对应的周期项参数的参数值n
current_min
为起始点,预设步长值1增加周期项参数n的参数值,在更新搜索区间遍历周期项参数对应的各候选贝叶斯信息量值。
[0112]
步骤414,判断各候选贝叶斯信息量值是否大于或等于当前数值最小的贝叶斯信息量值,若是,执行步骤416,否则执行步骤418。
[0113]
具体地,若各候选贝叶斯信息量值在更新搜索区间满足单调递增函数关系,且周期项参数的参数值在单调递增长度值的取值范围内时,判断各候选贝叶斯信息量值是否大于或等于当前数值最小的贝叶斯信息量值,各候选贝叶斯信息量值中不存在新的bic值大于当前数值最小的贝叶斯信息量值时,不更新目标参数值。
[0114]
步骤416,不更新目标参数值。
[0115]
步骤418,若各候选贝叶斯信息量值中存在小于当前数值最小的贝叶斯信息量值时,确定数值最小的候选贝叶斯信息量值对应周期项参数值的候选参数值,将候选参数值作为目标参数值。
[0116]
具体地,若各候选贝叶斯信息量值中存在小于当前数值最小的贝叶斯信息量值,各候选贝叶斯信息量值在更新搜索区间满足单调递增函数关系时,确定数值最小的候选贝叶斯信息量值对应周期项参数值的候选参数值,将候选参数值作为目标参数值。例如,时间序列数据的周期类型为年周期,确定年周期的目标参数值。初始搜索范围值为[6,10],在n=8时的bic值最小,记为bic_current_min,由于[8,10]的取值下,单调递增长度值为3,不满足单调递增长度大于5的条件,故需要从n=11,n=12开始继续计算对应的bic值。若获取
n=12时对应的bic值时,n在[8,12]更新区间内满足bic值单调递增,即满足循环退出条件,则n=8为此年周期中目标参数值,即傅里叶项阶数最优取值。
[0117]
可选地,若各候选贝叶斯信息量值中存在小于当前数值最小的贝叶斯信息量值,各候选贝叶斯信息量值在更新搜索区间不满足单调递增函数关系时,执行步骤412,直到获取目标参数值,停止遍历各候选贝叶斯信息量值。在一个实施例中,当周期项参数的参数值为周期项参数阈值时,结束遍历各候选贝叶斯信息量值。
[0118]
本实施例中,当时间序列数据存在周期性时,根据贝叶斯信息准则和周期类型的初始搜索范围、单调递增长度值和周期项参数阈值对时间序列模型中周期项参数,即傅里叶阶数进行优化,得到最优周期项参数值;根据周期类型的初始搜索范围、单调递增长度值和周期项参数阈值能够减少周期项参数的优化次数和减少计算量,达到有效控制拟合的效果,提高时间序列模型对商品销量预测的准确性。
[0119]
在一个实施例中,如图5所示,提供了一种时间序列数据存在周期性的确定方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
[0120]
步骤502,获取时间序列模型中的周期性模型,通过训练集训练周期性模型,得到训练好的周期性模型。
[0121]
具体地,获取prophet模型中周期性模型,周期性模型可包括周周期、月周期和年周期;采用网格搜索方法对周期性模型的周周期、月周期和年周期进行筛选,周期性模型中是否存在周周期、月周期和年周期,可通过参数值“true”和“false”来表示,“true”代表有周期,“false”代表没有周期,由此可确定存在八种周期性模型,根据商品销量的训练集分别训练这八种周期性模型,得到训练好的周期性模型。
[0122]
步骤504,通过验证集对训练好的周期性模型进行验证,得到周期参数组集。
[0123]
步骤506,若根据评价指标从周期参数组集中存在训练好的周期性模型的目标周期参数组,确定时间序列数据存在周期性。
[0124]
具体地,从服务器中获取表征商品销量的验证集,对训练好的八种周期性模型进行验证,得到周期参数组集,根据评价指标从周期参数组集选取最优的参数组。
[0125]
上述时间序列数据存在周期性的确定方法中,通过获取时间序列模型中的周期性模型,通过训练集训练周期性模型,以及验证集对训练好的周期性模型进行验证,根据评价指标确定最优参数组,根据最优参数组确定时间序列数据存在的周期类型,减少数据量运算,提高终端的处理性能。
[0126]
在另一个实施例中,如图6所示,提供了一种时间序列模型的周期项参数优化方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
[0127]
步骤602,获取表征商品历史销量的时间序列数据根据时长对应的预设总时长区间,确定训练集和验证集的分割比值。
[0128]
步骤604,根据分割比值对时间序列数据进行分割,得到用于优化周期项参数的训练集和验证集。
[0129]
步骤606,当根据训练集和验证集确定时间序列数据存在周期性时,确定时间序列数据的周期类型。
[0130]
步骤608,根据周期类型获取时间序列模型中周期项参数对应的初始搜索区间值。
[0131]
步骤610,基于贝叶斯信息准则,在初始搜索区间值遍历周期项参数对应的各贝叶
斯信息量值,确定当前数值最小的贝叶斯信息量值。
[0132]
步骤612,根据当前数值最小的贝叶斯信息量值确定周期项参数的目标参数值。
[0133]
步骤614,根据目标参数值和周期性模型的周期长度对周期模型中的参数进行拟合,得到周期性模型的估计参数值组,确定目标周期性模型,得到目标时间序列模型。
[0134]
其中,周期长度是预先设定的;例如,周周期的周期长度为7天,月周期的周期长度为30.5天,年周期的周期长度为365.25天。周期性模型可以表示为:
[0135][0136]
n表示周期项参数,即傅里叶阶数;p表示周期长度;a
n
、b
n
表示估计参数。
[0137]
具体地,根据目标参数值和周期性模型的周期长度对周期模型中的估计参数进行拟合,得到周期性模型的估计参数值组,根据目标参数值和估计参数值组确定目标周期性模型;根据目标周期模型、节假日模型和趋势模型确定最优的时间序列模型,即目标时间序列模型。
[0138]
步骤616,获取用于预测商品销量的预测时间序列数据和预测时间段,确定预测时间序列数据的预测颗粒度。
[0139]
其中,预测颗粒度可包括对商品销量的日度预测、周度预测、月度预测和年度预测。预测时间序列数据可以是选定的时间段内商品的销售量值,例如,获取商品5月和6月的每天的销售量值。预测时间段是指要预测商品未来销量值的时间段。不同的预测颗粒度适用的周期类型不同,预测颗粒度为周度预测,适用于年周期和月周期;预测颗粒度为月度预测,适用于年周期;预测颗粒度为年度预测,不适用于周周期、月周期和年周期。
[0140]
步骤618,将预测时间序列数据输入至目标时间序列模型中,根据预测颗粒度确定在商品预测时间段的预测销量值。
[0141]
上述时间序列模型的周期项参数优化方法中,通过先根据时间序列数据的时长对时间序列数据进行划分,得到训练集和验证集;用于准确判断时间序列数据的周期性和确定周期类型;通过周期类型获取时间序列模型中周期项参数对应的初始搜索区间值;在初始搜索区间值依序取值,并将依序所取的值作为周期项参数的参数值计算贝叶斯信息量值,确定目标参数值,将目标参数值作为周期项参数的最优值,根据最优值和周期性模型的周期长度对周期模型中估计参数值进行拟合,得到周期性模型的估计参数值组,确定目标周期性模型;进而确定目标时间序列模型;利用目标时间序列模型根据预测时间序列数据的预测颗粒度预测商品在预测时间段的销量,通过判断时间序列数据存在周期性时,在周期类型确定的周期项参数的选值范围依序取值,计算贝叶斯信息量值,得到最优周期项参数值,减少了数据的计算量以及提高时间序列模型预测的准确性,进而实现对供应链上的商品合理分配。
[0142]
应该理解的是,虽然图2-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0143]
在一个实施例中,如图7所示,提供了一种时间序列模型的周期项参数优化装置,包括:分割模块702、确定模块704、获取模块706和优化模块708,其中:
[0144]
分割模块702,获取表征商品历史销量的时间序列数据,根据时间序列数据的时长对时间序列数据进行分割,得到用于优化周期项参数的训练集和验证集。
[0145]
确定模块704,用于当根据训练集和验证集确定时间序列数据存在周期性时,确定时间序列数据的周期类型;
[0146]
获取模块706,用于根据周期类型获取时间序列模型中周期项参数对应的初始搜索区间值。
[0147]
优化模块708,用于基于贝叶斯信息准则,在初始搜索区间值遍历周期项参数对应的各贝叶斯信息量值,根据贝叶斯信息量值确定周期项参数的目标参数值。
[0148]
上述时间序列模型的周期项参数优化装置中,通过对确定商品历史销量的时间序列数据的时长,根据时长对时间序列数据进行分割,得到用于优化周期项参数的训练集和验证集;根据时长划分测试集和验证集,用于准确判断时间序列数据的周期性和确定周期类型;通过周期类型获取时间序列模型中周期项参数对应的初始搜索区间值;根据初始搜索区间值和贝叶斯信息准则在设定的初始搜索区间值对周期项参数的参数值进行遍历确定目标参数值,减少遍历的次数和拟合的程度,提高的时间序列模型预测的准确性。
[0149]
在另一个实施例中,如图8所示,提供了一种时间序列模型的周期项参数优化装置,除包括分割模块702、确定模块704、获取模块706和优化模块708之外,还包括遍历模块710、更新模块712、拟合模块714和预测模块716,其中:
[0150]
分割模块702还用于根据时长对应的预设总时长区间,确定训练集和验证集的分割比值;根据分割比值对时间序列数据进行分割,得到用于优化周期项参数的训练集和验证集。
[0151]
遍历模块710,用于基于贝叶斯信息准则,在初始搜索区间值遍历周期项参数对应的各贝叶斯信息量值,确定当前数值最小的贝叶斯信息量值;根据当前数值最小的贝叶斯信息量值确定周期项参数的目标参数值。
[0152]
在一个实施例中,获取模块706还用于若各贝叶斯信息量值在初始搜索区间值不满足单调递增函数关系,获取周期项参数的单调递增长度值和周期项参数阈值。
[0153]
更新模块712,用于根据单调递增长度值和周期项参数阈值更新初始搜索区间,得到更新搜索区间。
[0154]
在一个实施例中,更新模块712还用于若各候选贝叶斯信息量值大于或等于当前数值最小的贝叶斯信息量值,则不更新目标参数值。
[0155]
在一个实施例中,更新模块712还用于若各候选贝叶斯信息量值中存在小于当前数值最小的贝叶斯信息量值时,确定数值最小的候选贝叶斯信息量值对应周期项参数值的候选参数值,将候选参数值作为目标参数值。
[0156]
在一个实施例中,优化模块708还用于以当前数值最小的贝叶斯信息量值对应的周期项参数的参数值为起始点,预设步长值增加周期项参数的参数值,基于贝叶斯信息准则,在更新搜索区间遍历周期项参数对应的各候选贝叶斯信息量值。
[0157]
遍历模块710还用于基于贝叶斯信息准则,在初始搜索区间值遍历周期项参数对应的贝叶斯信息量值;若贝叶斯信息量值在初始搜索区间值满足单调递增函数关系,将数
值最小的贝叶斯信息量值对应的周期项参数的参数值作为目标参数值。
[0158]
拟合模块714,用于根据目标参数值和周期性模型的周期长度对周期模型中的参数进行拟合,得到周期性模型的估计参数值组,确定目标周期性模型,得到目标时间序列模型。
[0159]
预测模块716,用于获取用于预测商品销量的预测时间序列数据和预测时间段;确定预测时间序列数据的预测颗粒度;将预测时间序列数据输入至目标时间序列模型中,根据预测颗粒度确定在商品预测时间段的预测销量值。
[0160]
在一个实施例中,通过获取表征商品历史销量的时间序列数据根据时长对应的预设总时长区间,确定训练集和验证集的分割比值;根据分割比值对时间序列数据进行分割,得到用于优化周期项参数的训练集和验证集,基于网格搜索,确定时间序列数据的周期类型;根据确定的周期类型获取时间序列模型中周期项参数对应的初始搜索区间值,在初始搜索区间值遍历周期项参数对应的各贝叶斯信息量值,确定当前数值最小的贝叶斯信息量值;根据当前数值最小的贝叶斯信息量值确定周期项参数的目标参数值,实现周期项参数优化;减少周期项参数优化的运算量,提高终端数据的处理性能;根据目标参数值和周期性模型的周期长度对周期模型中的参数进行拟合,得到周期性模型的估计参数值组,确定目标时间序列模型,根据目标时间序列模型对商品销量在给定时间进行预测,提高了时间序列模型预测的准确性。
[0161]
关于时间序列模型的周期项参数优化装置的具体限定可以参见上文中对于时间序列模型的周期项参数优化方法的限定,在此不再赘述。上述时间序列模型的周期项参数优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0162]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种时间序列模型的周期项参数优化方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0163]
本领域技术人员可以理解,图9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0164]
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0165]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0166]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0167]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0168]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1