一种建立灰色预测模型的方法和装置与流程

文档序号:12469485阅读:532来源:国知局
一种建立灰色预测模型的方法和装置与流程

本发明实施例涉及数据预测技术领域,尤其涉及一种建立灰色模型的方法和装置。



背景技术:

基于一定的样本量,对数据进行预测具有相当多的优势,例如,当样本量为区域卫生的费用时,对区域卫生的费用进行预测,能够对区域卫生费用进行指导。

现有技术中,在基于一定的样本量对数据进行预测时,通常基于一定的样本量以灰色系统理论为原理构建灰色GM(1,1)模型,灰色GM(1,1)模型是一种时间序列预测模型,相较于传统的ARMA模型有着所需样本量小、不小判断阶数等优点,并且在小样本、不确定的数据集中有较高的预测精度。

然而,现有技术中,在以灰色系统理论为原理构建灰色预测模型时,由于采用最小二乘法来求解模型中的参数,而最小二乘法会使得某些奇异点的误差被放大,使得预测变得不精确,从而降低了预测的精确度。



技术实现要素:

本发明实施例提供一种建立灰色预测模型的方法和装置,用以提高预测的精度。

本发明实施例提供一种建立灰色预测模型的方法,包括:

根据n个原始数据,确定第一数据序列,所述第一数据序列具有指数增长趋势;

根据所述第一数据序列,确定一阶微分方程;

将作为初值条件,对所述一阶微分方程进行求解,得到灰色预测模型;其中,为所述第一数据序列中的最后一个数据的估计值;

灰色预测模型为

其中,为第r个数据的预测值,x(1)(n)为所述第一数据序列中的最后一个数据,r为正整数,e为指数,u、a和c是根据所述n个原始数据通过粒子群优化算法进行计算得到的。

较佳的,所述根据所述第一数据序列,确定一阶微分方程,包括:

根据所述第一数据序列,确定的一阶微分方程为公式(2);

公式(2)

其中,x(1)为所述第一数据序列中的数据。

较佳的,所述根据n个原始数据,确定第一数据序列,包括:

根据n个原始数据,确定原始数据序列;

根据所述原始数据序列和公式(3)确定第一数据序列;

其中,x(0)(i)为所述原始数据序列中的第i个原始数据,x(1)(k)为所述第一数据序列中的第k个数据,i为正整数且1<i≤k,k为正整数且1<k≤n。

较佳的,所述u和a是根据所述n个原始数据通过粒子群优化算法进行计算得到的,包括:

将公式(4)作为粒子群优化算法中的适应度函数采用粒子群优化算法得到u和a;

公式(4)

其中,x(0)(k)为所述原始数据序列中的第k个原始数据,z(1)(k)是根据所述第一数据序列中的第k个数据和第(k-1)个数据进行计算得到的,n为所述原始数据序列中数据的个数。

较佳的,所述c也是根据粒子群优化算法进行计算得到的,包括:

将公式(5)作为粒子群优化算法中的适应度函数采用粒子群优化算法得到c;

公式(5)

其中,x(1)(k)为所述第一数据序列中的第k个数据,n为所述原始数据序列中的数据的个数。

本发明实施例还提供一种建立灰色预测模型的装置,包括:

第一确定模块,用于根据n个原始数据,确定第一数据序列,所述第一数据序列具有指数增长趋势;

第二确定模块,用于根据所述第一数据序列,确定一阶微分方程;

建立模块,用于将作为初值条件,对所述一阶微分方程进行求解,得到灰色预测模型;其中,为所述第一数据序列中的最后一个数据的估计值;

灰色预测模型为

其中,为第r个数据的预测值,x(1)(n)为所述第一数据序列中的最后一个数据,r为正整数,e为指数,u、a和c是根据所述n个原始数据通过粒子群优化算法进行计算得到的。

较佳的,所述第二确定模块,具体用于:

根据所述第一数据序列,确定的一阶微分方程为公式(2);

公式(2)

其中,x(1)为所述第一数据序列中的数据。

较佳的,所述第一确定模块,具体用于:

根据n个原始数据,确定原始数据序列;

根据所述原始数据序列和公式(3)确定第一数据序列;

其中,x(0)(i)为所述原始数据序列中的第i个原始数据,x(1)(k)为所述第一数据序列中的第k个数据,i为正整数且1<i≤k,k为正整数且1<k≤n。

较佳的,所述建立模块,具体用于:

将公式(4)作为粒子群优化算法中的适应度函数采用粒子群优化算法得到u和a;

公式(4)

其中,x(0)(k)为所述原始数据序列中的第k个原始数据,z(1)(k)是根据所述第一数据序列中的第k个数据和第(k-1)个数据进行计算得到的,n为所述原始数据序列中数据的个数。

较佳的,所述建立模块,具体用于:

将公式(5)作为粒子群优化算法中的适应度函数采用粒子群优化算法得到c;

公式(5)

其中,x(1)(k)为所述第一数据序列中的第k个数据,n为所述原始数据序列中的数据的个数。

上述实施例提供的一种建立灰色预测模型的方法和装置,包括:根据n个原始数据,确定第一数据序列,所述第一数据序列具有指数增长趋势;根据所述第一数据序列,确定一阶微分方程;将作为初值条件,对所述一阶微分方程进行求解,得到灰色预测模型;其中,为所述第一数据序列中的最后一个数据的估计值;灰色预测模型为其中,为第r个数据的预测值,x(1)(n)为所述第一数据序列中的最后一个数据,r为正整数,e为指数,u、a和c是根据所述n个原始数据通过粒子群优化算法进行计算得到的,可以看出,在构建灰色预测模型时,将原始数据进行一阶累加后作为模型的输入数据,并且优化模型的初值条件,将其转变为带参数的最新值,从而使得模型曲线并不一定需要通过序列初始点,更加符合实际,也增加最新数据与模型的关联度,此外,采用最小一乘准则建立模型适应度函数,并通过粒子群优化算法来优化模型的参数值,由于最小一乘准则使用绝对误差来表示与真实值的偏离值,能够有效降低奇异点对整个模型误差效果造成的营销,因此,能够提高预测的精确度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。

图1为本发明实施例提供的一种建立灰色预测模型的方法流程示意图;

图2为本发明实施例提供的更新粒子的值的方法流程示意图;

图3为本发明实施例提供的一种建立灰色预测模型的装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1示例性示出了本发明实施例提供的一种建立灰色预测模型的方法流程示意图,如图1所示,该方法可包括:

S101、根据n个原始数据,确定第一数据序列,并且第一数据序列具有指数增长趋势。

S102、根据第一数据序列,确定一阶微分方程。

S103、将作为初值条件,对所述一阶微分方程进行求解,得到灰色预测模型;其中,为所述第一数据序列中的最后一个数据的估计值;

灰色预测模型为

其中,为第r个数据的预测值,x(1)(n)为所述第一数据序列中的最后一个数据,r为正整数,e为指数,u、a和c是所述n个原始数据通过粒子群优化算法进行计算得到的。

上述步骤S102中,根据第一数据序列,确定的一阶微分方程可为下列公式(2)。

其中,x1为第一数据序列中的数据。

将作为初值条件,对根据第一数据序列确定的公式(2)所示的一阶微分方程求解的过程如下:

确定公式(2)

两边积分:则

令则x(1)=c(t)·e-at

对x(1)=c(t)·e-at关于t求导,则得到:

之后将x(1)=c(t)·e-at和代入上述公式(2),得到:c′(t)·e-at=u

之后两边积分,有C为常数;

之后将代入公式x(1)=c(t)·e-at,得到由于则

然后将连续值t变为离散值,则得到

之后通过一阶累加的反向运算,原始序列的预测值就变为

即通过一阶累加的反向运算,即可得到上述公式(1)。

至此,将作为初值条件,对所述一阶微分方程进行求解,得到灰色预测模型。

在上述步骤S101中,在根据n个原始数据,确定第一数据序列时,可先根据n个原始数据,确定一原始数据序列X(0)={x(0)(1),x(0)(2),…,x(0)(n)},其中,x(0)(1)为原始数据序列中的第1个原始数据,x(0)(2)原始数据序列中的第2个原始数据,x(0)(n)原始数据序列中的第n个原始数据。

然后根据确定的原始数据序列和下列公式(3)确定第一数据序列X(1)={x(1)(1),x(1)(2),…,x(1)(n)}。其中,x(1)(1)为第一数据序列中的第1个原始数据,x(1)(2)第一数据序列中的第2个原始数据,x(1)(n)第一数据序列中的第n个原始数据。

公式(3)中,x(0)(i)为原始数据序列中的第i个原始数据,x(1)(k)为所述第一数据序列中的第k个数据,i为正整数且1<i≤k,k为正整数且1<k≤n。

例如,假设存在一原始数据序列A={10,20,30,40,50},然后基于原始数据序列A,采用公式(3)得到的第一数据序列B={10,10+20,10+20+30,10+20+30+40,10+20+30+40+50}={10,30,60,100,150}。

可选的,在根据n个原始数据通过粒子群优化算法进行计算得到上述公式(1)中的u和a时,可将下列公式(4)作为粒子群优化算法中的适应度函数采用粒子群优化算法得到u和a;

其中,x(0)(k)为所述原始数据序列中的第k个原始数据,z(1)(k)是根据所述第一数据序列中的第k个数据和第(k-1)个数据进行计算得到的,n为所述原始数据序列中数据的个数。

可选的,在根据n个原始数据通过粒子群优化算法进行计算得到上述公式(1)中的c时,可将公式(5)作为粒子群优化算法中的适应度函数采用粒子群优化算法得到c;

其中,x(1)(k)为所述第一数据序列中的第k个数据,n为所述原始数据序列中的数据的个数。

公式(4)中的z(1)(k)是根据第一数据序列中的第k个数据和第(k-1)个数据进行计算得到的。

具体的,z(1)(k)可通过下列公式(6)计算得到。

其中,x(1)(k)为第一数据序列中的第k个数据,x(1)(k-1)为第一数据序列中的第k-1个数据

在确定好粒子群优化算法中的适应度函数以后,可按照图2所示的方法流程更新粒子的值,然后根据确定的适应度函数进行粒子群参数寻优。

S201、随机确定若干个粒子的值,根据所选择的适应度函数确定粒子的初始值。

S202、设第i个粒子的位置可以表示为xi=(xi1,xi2,…,xid)。

S203、设第i个粒子的速度可以表示为vi=(vi1,vi2,…,vid)。

S204、设第i个粒子的历史最优点可以表示为pi=(pi1,pi2,…,pid)

S205、粒子种群历史最优点可以表示为pg=(pg1,pg2,…,pgd)

S206、粒子的速度按照下列公式(7)进行更新

S207、粒子的位置按照下列公式(8)进行更新

其中,c1和c2为学习因子,在一种实施方式中,可令c1=c2=2,η1和η2是在0-1均匀分布的随机数,ω可通过下列公式(9)计算得到。

公式(9)中Iter_max为最大迭代次数,i为当前迭代次数,在一种实施方式中可令ωmax=0.9,ωmin=0.4。

下面通过一个具体的例子对根据n个原始数据通过粒子群优化算法进行计算得到上述公式(1)中的u和a进行详细的解释说明。

在该例子中,假设n的值为5,并假设存在的原始数据序列为S(0)={s(0)(1),s(0)(2),s(0)(3),s(0)(4),s(0)(5)},并且s(0)(1)的值为1,s(0)(2)的值为2,s(0)(3)的值为3,s(0)(4)的值为4,s(0)(5)的值为5,即S(0)={1,2,3,4,5}。

根据原始数据序列,确定第一数据序列为S(1)={s(1)(1),s(1)(2),s(1)(3),s(1)(4),s(1)(5)},根据上述公式(3),可得到:

s(1)(1)=s(0)(1)=1;

s(1)(2)=s(0)(1)+s(0)(2)=1+2=3

s(1)(3)=s(0)(1)+s(0)(2)+s(0)(2)=1+2+3=6

s(1)(4)=s(0)(1)+s(0)(2)+s(0)(3)+s(0)(4)=1+2+3+5=10

s(1)(5)=s(0)(1)+s(0)(2)+s(0)(3)+s(0)(4)+s(0)(5)=1+2+3+4+5=15

即S(1)={1,3,6,10,15}

然后根据即根据上述公式(6),可得到:

进一步假设,随机产生的两组初始化参数为a00、u00以及a01、u01,并假设a00的值为3,u00的值为4,a01的值为5,u01的值为6。

然后,根据上述公式(4)所确定的适应度函数为下列公式(10)

之后将将a00的值为3,u00的值为4代入上述公式(10)得到最小一乘值M00,则

M00=|s(0)(2)-[(-a00z(1)(2))+u00]|+|s(0)(3)-[(-a00z(1)(3))+u00]|+|s(0)(4)-[(-a00z(1)(4))+u00]|+|s(0)(5)-[(-a00z(1)(5))+u00]|

即然后将a01的值为5,u01的值为6代入公式(17)

得到最小一乘值M01,则

M01=|s(0)(2)-[(-a01z(1)(2))+u01]|+|s(0)(3)-[(-a01z(1)(3))+u01]|+|s(0)(4)-[(-a01z(1)(4))+u01]|+|s(0)(5)-[(-a01z(1)(5))+u01]|

由于最小一乘值M00的值为79,而最小一乘值M01的值为124.5,因此,将a00、u00种群历史最优点进行最优参数a和u

在确定种群历史最优点之后,为了描述简便起见,在该例子中,假设最大迭代次数Iter_max的值为1。

针对(a,u)的优化,粒子为(a,u),其中,a为粒子(a,u)的第一个分量,u为粒子(a,u)的第二个分量。

下面根据粒子(a,u)的第一个分量a的初始化值a00,求粒子(a,u)的第一个分量a采用粒子群优化算法迭代一次以后的值a10

(a00,u00)为粒子(a,u)的第1个粒子,并且(a01,u01)为粒子粒子(a,u)的第2个粒子,并且第1个粒子的初始化值为(3,4),第2个粒子的初始化值为(5,6)。

第1个粒子的第一个分量a的位置可以表示为a00,假设第1个粒子的第一个分量a00的初始速度v00的值为2,则此时,第1个粒子历史最优点p1=(a00,u00),以及种群历史最优点pg=(a00,u00)。

然后,将第1个粒子的第一个分量a的位置可以表示为a00,假设第1个粒子的第一个分量a的初始速度v00的值为2,则此时,第1个粒子历史最优点p1=(a00,u00)以及种群历史最优点pg=(a00,u00)代入上述公式(7)和公式(8)可得到:

a10=a00+v10

v10=ωv00+c1η1(p1-a00)+c2η2(pg-a00)

其中,令c1=c2=2,令η1的值为0.2,η2的值为0.4,

Iter_max的值为1,由于当前为第1次迭代,因此,i的值为1,并令ωmax=0.9,ωmin=0.4

因此,根据上述公式(9)可得到

则v10=0.4*2+2*0.2(3-3)+2*0.4(3-3)=0.8

则可求得,a10=3+0.8=3.8

同理,可求得u10=4+0.8=4.8

在求得a10和u10以后,将a10的值为3.8,u10的值为4.8代入上述公式(10)得到最小一乘值M10,则

M10=|s(0)(2)-[(-a10z(1)(2))+u10]|+|s(0)(3)-[(-a10z(1)(3))+u10]|+|s(0)(4)-[(-a10z(1)(4))+u10]|+|s(0)(5)-[(-a10z(1)(5))+u10]|

在计算出M10以后,将M10与M00进行比较,确定出第1个粒子的历史最优点,由于M00的值为79,M10的值为97.4,因此,此时,第1个粒子的历史最优点依然为(a00,u00),即,此时,第1个粒子的历史最优点依然为(3,4)。此时,种群历史最优点不变,依然为(3,4)。

然后,求第2个粒子迭代1次以后的值(a11,u11)。

下面求第2个粒子的第一个分量a11的值。第2个粒子的第一个分量a01的位置可以表示为a01,假设第1个粒子的第一个分量a01的初始速度v01的值为2,则此时,第2个粒子的历史最优点p2=(a01,u01)以及种群历史最优点pg=(a00,u00)。

然后,将第2个粒子的第一个分量a01的位置可以表示为a01,假设第1个粒子的第一个分量a01的初始速度v01的值为2,第2个粒子的历史最优点p2=(a01,u01)以及种群历史最优点pg=(a00,u00)代入上述公式(7)和公式(8)可得到:

a11=a10+v20

v20=ωv01+c1η1(p1-a01)+c2η2(pg-a01)

其中,令c1=c2=2,令η1的值为0.2,η2的值为0.4,

Iter_max的值为1,由于当前为第1次迭代,因此,i的值为1,并令ωmax=0.9,ωmin=0.4

因此,根据上述公式(9)可得到

则v10=0.4*2+2*0.2(5-5)+2*0.4(3-5)=-0.8

则可求得,a11=5-0.8=4.2

同理,可求得u11=6-0.8=5.2

在求得a11和u11以后,将a11的值为4.2,u11的值为5.2代入上述公式(10)得到最小一乘值M11,则

M11=|s(0)(2)-[(-a11z(1)(2))+u11]|+|s(0)(3)-[(-a11z(1)(3))+u11]|+|s(0)(4)-[(-a11z(1)(4))+u11]|+|s(0)(5)-[(-a11z(1)(5))+u11]|

在计算出M11以后,将M11与M01进行比较,确定出第2个粒子的历史最优点,由于M11的值为106.6,M01的值为124.5,因此,此时,第2个粒子的历史最优点为(a11,u11),即此时第2个粒子的历史最优点为(5,6)。

然后,将第2个粒子的历史最优点(a11,u11)对应的最小一乘值M11与种群历史最优点(a00,u00)对应的最小一乘值M00进行比较,由于M11的值为106.6,而M00的值为79,因此,可确定种群历史最优点依然为(3,4)。

至此,可确定粒子(a,u)的第一个分量a的值为3,粒子(a,u)的第二个分量u的值为4。

采用同样的方法,当适应度函数为上述公式(5)时,可求得c的最优解。

在求得参数a、参数u、参数c的最优解以后,将参数a、参数u、参数c的最优解代入上述公式(1),即可建立灰色预测模型,然后根据建立的灰色预测模型,对数据进行预测。

例如,可将建立的灰色预测模型应用于区域卫生费用数据中,也可将建立的灰色预测模型应用于区域刷卡金额的预测中,还可将建立的灰色预测模型应用于零售商品的销售量预测中。

可以看出,在构建灰色预测模型时,将原始数据进行一阶累加后作为模型的输入数据,并且优化模型的初值条件,将其转变为带参数的最新值,从而使得模型曲线并不一定需要通过序列初始点,更加符合实际,也增加最新数据与模型的关联度,此外,采用最小一乘准则建立模型适应度函数,并通过粒子群优化算法来优化模型的参数值,由于最小一乘准则使用绝对误差来表示与真实值的偏离值,能够有效降低奇异点对整个模型误差效果造成的营销,因此,能够提高预测的精确度。

基于相同的技术构思,本发明实施例还提供一种建立灰色预测模型的装置,如图3所示,该装置包括:

第一确定模块301,用于根据n个原始数据,确定第一数据序列,所述第一数据序列具有指数增长趋势;

第二确定模块302,用于根据所述第一数据序列,确定一阶微分方程;

建立模块303,用于将作为初值条件,对所述一阶微分方程进行求解,得到灰色预测模型;其中,为所述第一数据序列中的最后一个数据的估计值;

灰色预测模型为

其中,为第r个数据的预测值,x(1)(n)为所述第一数据序列中的最后一个数据,r为正整数,e为指数,u、a和c是根据所述n个原始数据通过粒子群优化算法进行计算得到的。

较佳的,第二确定模块302,具体用于:

根据所述第一数据序列,确定的一阶微分方程为公式(2);

公式(2)

其中,x(1)为所述第一数据序列中的数据。

较佳的,第一确定模块301,具体用于:

根据n个原始数据,确定原始数据序列;

根据所述原始数据序列和公式(3)确定第一数据序列;

其中,x(0)(i)为所述原始数据序列中的第i个原始数据,x(1)(k)为所述第一数据序列中的第k个数据,i为正整数且1<i≤k,k为正整数且1<k≤n。

较佳的,建立模块303,具体用于:

将公式(4)作为粒子群优化算法中的适应度函数采用粒子群优化算法得到u和a;

公式(4)

其中,x(0)(k)为所述原始数据序列中的第k个原始数据,z(1)(k)是根据所述第一数据序列中的第k个数据和第(k-1)个数据进行计算得到的,n为所述原始数据序列中数据的个数。

较佳的,建立模块303,具体用于:

将公式(5)作为粒子群优化算法中的适应度函数采用粒子群优化算法得到c;

公式(5)

其中,x(1)(k)为所述第一数据序列中的第k个数据,n为所述原始数据序列中的数据的个数。

综上,可以看出,在构建灰色预测模型时,将原始数据进行一阶累加后作为模型的输入数据,并且优化模型的初值条件,将其转变为带参数的最新值,从而使得模型曲线并不一定需要通过序列初始点,更加符合实际,也增加最新数据与模型的关联度,此外,采用最小一乘准则建立模型适应度函数,并通过粒子群优化算法来优化模型的参数值,由于最小一乘准则使用绝对误差来表示与真实值的偏离值,能够有效降低奇异点对整个模型误差效果造成的营销,因此,能够提高预测的精确度。

本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1