首页> 中国专利> 一种云环境下非平稳型应用用户并发量的预测系统及方法

一种云环境下非平稳型应用用户并发量的预测系统及方法

摘要

本发明提供一种云环境下非平稳型应用用户并发量的预测系统及方法,涉及云环境下服务性能优化技术领域。系统包括历史数据获取模块、非平稳型业务判定模块和应用用户并发量预测模块,通过对历史数据的分析,进行业务性质的识别,判断出并发量序列具有趋势性或周期性,并针对两种性质分别进行并发量预测。本发明针对云环境下非平稳型业务的趋势性与周期性应用用户并发量的特点,利用不同的预测方法构造了预测模型,对含有两种性质的并发量进行预测,能自动识别趋势性和周期性并分发量序列的特征,并能自动计算出序列的周期数,且无需人工干预,能自行完成预测过程,同时能有效提高非平稳型业务并发量预测的准确性。

著录项

  • 公开/公告号CN106533750A

    专利类型发明专利

  • 公开/公告日2017-03-22

    原文格式PDF

  • 申请/专利权人 东北大学;

    申请/专利号CN201610966190.1

  • 申请日2016-10-28

  • 分类号H04L12/24(20060101);

  • 代理机构沈阳东大知识产权代理有限公司;

  • 代理人梁焱

  • 地址 110819 辽宁省沈阳市和平区文化路3号巷11号

  • 入库时间 2023-06-19 01:52:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-21

    授权

    授权

  • 2017-04-19

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20161028

    实质审查的生效

  • 2017-03-22

    公开

    公开

说明书

技术领域

本发明涉及云环境下服务性能优化技术领域,尤其涉及一种云环境下非平稳型应用用户并发量的预测系统及方法。

背景技术

随着云应用服务系统的复杂化及其运行环境的开放化、动态化和难控化,云应用服务系统在不同的时间点承载的并发量有着显著的差异,并往往呈现出沿着某种规律的非平稳的趋势。应用用户并发量是指应用在单位时间内的用户请求数。云应用服务系统通过监测应用用户并发量,分析和预测历史应用用户并发量,执行适合的保障服务性能资源调整策略,达到保障云服务系统的稳定性和有效性的目的。因此,准确实时的应用用户并发量预测既是判断并发量异常与否的依据,也是动态资源配置的基础。传统的应用用户并发量预测多将应用用户并发量看作成平稳时间序列,采用AR等线性模型进行预测,简单但精度较差。近年来,基于神经网络的非线性预测理论和方法得到广泛应用,提高了预测精度,但神经网络固有的缺陷阻碍了它的进一步发展。

在云应用服务系统中,通过触发模块判断是否需要执行云资源性能优化过程:如果当前周期应用的实际并发量与预测并发量的差值的绝对值大于阈值,则触发性能优化过程;否则,不触发性能优化过程。因此,尽可能准确地预测云应用用户并发量有助于提高云资源性能优化过程的效率。在这个过程中,建立并发量预测模型是云应用系统性能优化的关键。但由于云环境的复杂性,应用所处理的业务大多属于非平稳型并发业务,即应用用户并发量不在一定数值上下内平稳变化的业务,其包括趋势性并发业务与周期性并发业务。趋势性并发业务是指应用用户并发量在一段时间内具有递增或递减趋势的业务。周期性并发业务是指应用用户并发量在一段时间内周期性变化的业务。

为了构建并发量预测模型,现有技术中大多采用时间序列分析、人工神经网络以及卡尔曼滤波等方法,主要有:依赖连续并发量信息的测量和捕获,采用多种线性时间序列模型对并发量进行短期的预测;基于人工神经网络的BP预测算法,应用人工智能技术预测并发量;基于滤波理论的预测算法PAA,应用电子或动力学的滤波理论预测并发量;等等。然而,现有的研究都集中在预测的算法上,企图建立一个通用的预测算法以适应各种应用,这势必导致算法的通用性提高而准确性降低。而并发量本身没有一个特定的非线性模式,不同的应用,由于性质的差异,需要相对应的、适合的预测方法进行并发量预测。

发明内容

针对现有技术的缺陷,本发明提供一种云环境下非平稳型应用用户并发量的预测系统及方法,针对云环境下非平稳型业务的趋势性与周期性应用用户并发量的特点,利用不同的预测方法构造了预测模型,对含有两种性质的并发量进行预测,能自动识别趋势性和周期性并分发量序列的特征,并能自动计算出序列的周期数,且无需人工干预,能自行完成预测过程,同时能有效提高非平稳型业务并发量预测的准确性。

一方面,本发明提供一种云环境下非平稳型应用用户并发量的预测系统,包括历史数据获取模块、非平稳型业务判定模块和应用用户并发量预测模块;

所述历史数据获取模块用于通过连接存储应用用户并发量的数据库,将云环境下一段时间内用户并发量按照一定的时间间隔从数据库中获取到系统缓存当中,为非平稳型判定模块提供有效的用户并发量历史数据时间序列;

所述非平稳型业务判定模块用于通过分析从历史数据获取模块得到的用户并发量历史数据时间序列,来识别产生该用户并发量历史数据时间序列的业务是否属于非平稳型业务,包括:趋势性识别模块和周期性识别模块;

所述趋势性识别模块用于利用时间序列自相关系数趋势识别法,识别用户并发量历史数据时间序列是否具有趋势性;所述时间序列自相关系数趋势识别法是一种利用自相关系数与T分布相结合,对时间序列的自相关系数与零值的差异性进行检测,从而分析时间序列的趋势性的方法;

所述周期性识别模块用于利用时间序列功率谱周期识别法,识别用户并发量历史数据时间序列是否具有周期性,并计算周期性用户并发量历史数据时间序列的周期数;所述时间序列功率谱周期识别法是利用周期图法计算时间序列的功率谱,并对时间序列的功率谱进行奇异值检测分析,从而识别出时间序列的周期性,并计算具有周期性的时间序列的周期数;

所述应用用户并发量预测模块用于利用经过所述非平稳型业务判定模块判定后的非平稳型业务的应用用户并发量历史数据时间序列,建立相应的云环境下应用用户并发量预测模型,并利用该模型预测得到未来一段时间内的应用用户并发量时间序列,包括趋势性并发量预测模块和周期性并发量预测模块;

所述趋势性并发量预测模块用于对趋势性并发量时间序列进行预测;

所述周期性并发量预测模块用于从周期性识别模块获取周期数,然后进行周期性并发量时间序列的预测;

所述云环境下应用用户并发量预测模型是一种无需任何参数针对趋势性时间序列与周期性时间序列的预测模型。

另一方面,本发明还提供一种云环境下非平稳型应用用户并发量的预测方法,采用所述的云环境下非平稳型应用用户并发量的预测系统实现,包括以下步骤:

步骤1:从数据库服务器获取用户并发量历史数据时间序列S;

从数据库服务器获取用户并发量历史数据时间序列S,如下式所示;

其中,coni为ti时间的并发量,时间ti满足ti<ti+1,n为并发量总个数;

步骤2、计算自相关系数序列;

将用户并发量序列按延迟步长为k的间隔可化分为n-k个二元组:<conl,conl+k>、…、<coni,coni+k>、…、<conn-k,conn>,其延迟步长为k的自相关系数ρk为:

其中,为并发量时间序列中前n-k项的平均值,为并发量时间序列中前n-k项向后平移k项的所有值的平均值;γ(i,i+k)为自协方差函数;

用户并发量自相关系数序列由各延迟步长下自相关系数组成,为其中,Pm为用户并发量自相关系数序列,k=1,2,…,例,m为最大延迟步长;

步骤3、计算功率谱序列;

用户并发量功率谱序列由各频率下时间序列的功率谱组成,为其中,Q为用户并发量功率谱序列,为频率为v时并发量序列的功率谱,其中,Fv为用户并发量序列的离散傅里叶变换,v=1,2,…,n,Wn为旋转因子,j为虚数单位;

步骤4、对用户并发量历史数据时间序列进行业务性质识别,具体包括:

步骤4.1、进行趋势性识别,识别方法为:

步骤4.1.1、利用t分布推断出并发量自相关系数序列Pm与零值发生差异的错误概率Pρ

步骤4.1.2、判断错误概率Pρ与趋势性判定阈值Ps的关系,若Pρ>Ps,表示自相关系数序列Pm与零差异性不显著,该用户并发量历史数据时间序列无趋势性,执行步骤4.2;若Pρ<Ps,表示自相关系数序列Pm与零差异性显著,该用户并发量历史数据时间序列含有趋势性,执行步骤5,进行趋势性并发量的预测;

步骤4.2、进行周期性识别,识别方法为:

步骤4.2.1、确定功率谱序列Q的相邻数据变化序列H,为

其中,为向上取整符号;

步骤4.2.2、根据3σ准则,判断频率为v时并发量序列的功率谱的奇异性,μc为相邻数据变化序列H的平均值,σc为相邻数据变化序列H的标准差,若hvc>3σc,为奇异值,则用户并发量历史数据时间序列含有周期性,执行步骤4.3;否则,为非奇异值,用户并发量历史数据时间序列不含周期性,则步骤终止;

步骤4.3、计算用户并发量历史数据时间序列的周期数nperiod,其中,v。为周期峰对应的频率;然后执行步骤5,进行周期性并发量的预测;

步骤5、进行趋势性并发量预测,具体方法为:

步骤5.1、进行基于线性回归的数据拟合,采用线性回归的方法对趋势性应用并发量序列进行拟合,得到训练完成的线性回归模型fw(x)和原始数据与线性回归模型拟合后的残差数据序列,进而将原始序列与拟合序列的残差作为平稳型序列进行分析;

步骤5.2、进行基于ARMA(Auto-Regressive and Moving Average,自回归滑动平均)的残差拟合,实现对残差数据序列的分析和建模,得到的ARMA(p,q)模型有p+q+2个未知参数,即θ1,θ2,…,θq、μ和p是自回归阶数,q是移动平均阶数,是p阶自相关系数,θ1,θ2,…,θq是q阶移动平均系数,μ是移动位移值,是随机干扰项的方差值,其中,p和q需要进行预设;

步骤5.3、进行基于Ljung-Box检验的二次残差验证;

采用Ljung-Box检验进行验证,Ljung-Box检验则是基于一系列滞后阶数,对二次残差是否属于高斯白噪声进行验证,二次残差是指拟合ARMA后得到的残差序列,判断序列总体的相关性是否存在,验证的本质是确定建立的ARMA模型是否有效,如果相关性不存在代表ARMA模型有效,则执行步骤5.4,反之,相关性存在代表ARMA模型无效,则重新训练ARMA模型,返回步骤5.2;

步骤5.4、基于训练完成的线性回归模型和ARMA模型进行趋势性应用用户并发量的预测;

步骤6、进行周期性并发量预测,具体方法如下:

步骤6.1、初始化粒子群的最大粒子数、最大迭代次数以及粒子的位置和速度;

步骤6.2、采用5折交叉验证法训练支持向量机模型,将并发量历史时间序列分为5个数据包,其中4个数据包用于训练,1个数据包用于测试训练结果;

步骤6.3、利用预测准确率fCP作为适应度评价标准评价粒子适应度,预测准确率fCP为其中,为并发量预测值,和分别为指定的并发量历史数据coni可接受的准确区间的上界和下界,coni为并发量历史值,PL为预测的容错度;

步骤6.4、更新局部最优解与全局最优解,并将结果记录在局部最优解向量pi与全局最优解向量pg中;

步骤6.5、判断更新迭代是否达到终止条件,迭代的终止条件为最大迭代次数,如果最大迭代次数尚未达到,则更新粒子的位置和速度后,返回步骤6.4,进入下一个迭代循环,继续查找支持向量机参数的最优解;如果达到最大迭代次数,则迭代终止,粒子群优化结束,得到支持向量机的惩罚因子C与核参数γ的最优解,执行步骤6.6;

步骤6.6、进行支持向量机预测,利用从粒子群优化算法中得到的惩罚因子C与核参数γ的最优解作用于支持向量机,并利用并发量历史数据时间序列训练支持向量机模型,然后利用训练结果及输入的预测时间序列的时间标识,通过重建训练预测出周期性应用用户并发量数据。

进一步地,所述步骤5.1中数据拟合的过程如下:

步骤5.1.1、设置进行线性回归拟合的目标函数为fw(ti)=wTti,fw(ti)表示ti时刻对应的拟合应用用户并发量,w为损失函数参数;

步骤5.1.2、设置进行线性回归的损失函数为了(w)表示真实应用用户并发量与拟合应用用户并发量的误差平方和;

步骤5.1.3、采用梯度下降法进行损失函数中的参数优化求解,得到损失函数参数w的更新公式为:其中,α为学习速率,j为w更新的标号,j=0,1,…,limit,limit为梯度下降的迭代次数;设置参数更新阈值ε,参数更新直到前后两次绝对值小于参数更新阈值ε或者更新迭代次数达到了设置的迭代次数limit。

进一步地,所述步骤5.3判断序列总体的相关性是否存在的具体方法为:

步骤5.3.1、Ljung-Box检验的原假设H0为:原本的数据都是独立的,即总体的相关系数为0,能观察到的某些相关仅仅产生于随机抽样的误差,即其中,h是指定延迟期数,根据二次残差的自相关图人为设定其取值的数值;Ljung-Box检验的备择假设Ha为:原本的数据不是独立的,即至少存在某个其中,k≤h;

步骤5.3.2、构造统计量R为其中,u是用户并发量时间序列二次残差序列中元素的个数,其数值上和n相等,是二次残差序列k阶滞后的相关系数,该统计量服从自由度为h的卡方分布,给定显著性水平α,则拒绝域是若接受原假设HO,则认为原序列不存在相关性,否则认为原序列存在相关性。

进一步地,所述步骤5.4中趋势性应用用户并发量的预测方法,具体步骤如下:

步骤5.4.1、基于训练完成的线性回归模型,得到下一段时间tn+1,tn+2,…,tl的预测并发量为pre_conn+1,pre_conn+2,…,pre_conl,1表示预测并发量时间点的个数,同时也是预测并发量的个数;

步骤5.4.2、基于训练完成的ARMA模型,得到下一段时间tn+1,tn+2,…,tl的预测残差为pre_biasn+1,pre_biasn+2,…,pre_biasl

步骤5.4.3、下一段时间tn+1,tn+2,…,tm的预测趋势性应用用户并发量为pre_conn+1+pre_biasn+1,pre_conn+2+pre_biasn+2,…,pre_conm+pre_biasm

由上述技术方案可知,本发明的有益效果在于:本发明提供的一种云环境下非平稳型应用用户并发量的预测系统及方法,针对云环境下非平稳型业务的趋势性与周期性应用用户并发量的特点,利用不同的预测方法构造了预测模型,对含有两种性质的并发量进行预测,提高了非平稳型业务并发量预测的准确性;并发量序列趋势性判定方法,本方法通过自相关系数与T分布结合分析,可以自动的识别趋势性并分发量序列的特征;并发量序列周期性判定方法,本方法通过周期图法计算出的功率谱序列与3口准则结合分析,可以自动的识别周期性并发量的特征,并可以自动的计算出序列的周期数,解决了人工干预计算周期的问题;趋势性并发量序列预测方法,采用线性回归的方法对趋势型应用并发量序列进行拟合,并与ARMA算法结合,使拟合序列与残差拟合序列共同构造出预测序列,这种方法对具有趋势性的序列具有优秀的预测效果,且无需人工干预,自行完成预测过程;周期性并发量序列预测方法,利用粒子群优化的支持向量机对已知周期的并发量序列进行预测,能够精准的识别周期特征,尤其是对有趋势变化的周期性序列较其他预测方法有较好的预测效果,且无需人工干预,自行完成预测过程。

附图说明

图1为本发明实施例提供的云环境下非平稳型应用用户并发量的预测系统的结构框图;

图2为本发明实施例提供的云环境下应用用户并发量预测模型的结构框图;

图3为本发明实施例提供的云环境下非平稳型应用用户并发量的预测方法的流程图;

图4为本发明实施例提供的周期性应用用户并发量的预测流程图;

图5为本发明实施例提供的趋势性应用用户并发量预测流程图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

如图1所示,一种云环境下非平稳型应用用户并发量的预测系统,包括历史数据获取模块、非平稳型业务判定模块和应用用户并发量预测模块。

历史数据获取模块用于通过连接存储应用用户并发量的数据库,将云环境下一段时间内用户并发量按照一定的时间间隔从数据库中获取到系统缓存当中,为非平稳型判定模块提供有效的用户并发量历史数据时间序列。

非平稳型业务判定模块用于通过分析从历史数据获取模块得到的用户并发量历史数据时间序列,来识别产生该用户并发量历史数据时间序列的业务是否属于非平稳型业务,包括:趋势性识别模块和周期性识别模块,应用用户并发量预测模块提供算法选择依据及必要数据。

趋势性识别模块用于利用时间序列自相关系数趋势识别法,识别用户并发量历史数据时间序列是否具有趋势性。时间序列自相关系数趋势识别法是一种利用自相关系数与T分布相结合,对时间序列的自相关系数与零值的差异性进行检测,从而识别时间序列的趋势性的方法。

周期性识别模块用于利用时间序列功率谱周期识别法,识别用户并发量历史数据时间序列是否具有周期性,并计算周期性用户并发量历史数据时间序列的周期数。时间序列功率谱周期识别法是利用周期图法计算时间序列的功率谱,并对时间序列的功率谱进行奇异值检测分析,从而识别出时间序列的周期性,并计算具有周期性的时间序列的周期数。

应用用户并发量预测模块用于利用经过非平稳型业务判定模块判定后的非平稳型业务的应用用户并发量历史数据时间序列,建立相应的云环境下应用用户并发量预测模型,并利用该模型预测得到未来一段时间内的应用用户并发量时间序列,包括趋势性并发量预测模块和周期性并发量预测模块。

趋势性并发量预测模块用于对趋势性并发量时间序列进行预测,周期性并发量预测模块用于从周期性识别模块获取周期数,然后进行周期性并发量时间序列的预测。

云环境下应用用户并发量预测模型是一种无需任何参数针对趋势性时间序列与周期性时间序列的预测模型,模型结构如图2所示,采取分别预测的方式,趋势性并发量利用粒子群优化的支持向量机进行预测,周期性并发量利用基于线性回归与ARMA的方法进行预测。

采用上述的预测系统进行云环境下非平稳型应用用户并发量预测的方法,如图3所示,具体包括以下步骤。

步骤1、获取用户并发量历史数据。

从数据库服务器获取用户并发量历史数据时间序列,本实施方案中,从数据库服务器获取2016年3月5日-2016年3月7日间每天9:00-10:15的并发量数据,这些并发量数据以30秒为时间间隔记录,此用户并发量历史数据时间序列是一个按照时间顺序排列的时间与并发量的二元组的集合,即用户并发量时间序列为

其中,coni为ti时间的并发量,时间ti满足ti<ti+1,n为并发量总个数,本实施例中的并发量总个数为450。

为了减小并发量个别噪声对特征分析造成的影响,coni的取值为时间步长内的平均并发量,即其中,ri为ti-1至ti时间内云服务的用户请求数。

步骤2、计算自相关系数序列。

由步骤1可知,con1、con2、…、coni、…、conn是过去450个时间点对应的用户并发量,将这个序列按延迟步长为1的间隔可化分为n-1即449个二元组:<con1,con2>、<con2,con3>、…、<coni,coni+1>、…、<con449,con450>,其延迟步长为1的自相关系数为:

其中,为并发量时间序列中前n-k项的平均值,为并发量时间序列中前n-k项向后平移k项的所有值的平均值;γ(i,i+k)为自协方差函数;

自相关系数的含义不同于两个变量间的相关系数,并发量自相关系数ρ1用来度量并发量时间序列上一时间段并发量观测值与下一时间段并发量观测值之间的关系,从定量的角度来研究上一时间段对下一时间段并发量观测值的影响程度的大小。自相关系数的延迟步长是组成二元组的两个数值在序列中的间隔数,如果延迟步长为k,则组成的二元组为<coni,coni+k>,由此可知,并发量时间序列可被划分出n-k个二元组,这样可以得到并发量的自相关系数序列。

用户并发量自相关系数序列是一个由各延迟步长下自相关系数组成的序列其中,ρk为并发量时间序列在延迟步长为k下的自相关系数:

其中,k=1,2,…,m,m为最大延迟步长,一般情况下为向上取整符号,本实施例中,最大延迟步长m取值150。

步骤3、计算功率谱序列。

并发量功率谱序列是一个由各频率下时间序列的功率谱组成的序列其中,为频率为v时并发量序列的功率谱:

其中,Fv为用户并发量序列的离散傅里叶变换,v=1,2,…,n,Wn为旋转因子,j为虚数单位。

步骤4、对用户并发量历史数据时间序列进行业务性质识别,具体包括:

步骤4.1、进行趋势性识别,识别方法为:

步骤4.1.1、利用t分布推断出并发量自相关系数序列Pm与零值发生差异的错误概率Pρ

步骤4.1.2、判断错误概率Pρ与趋势性判定阈值Ps的关系,若Pρ>Ps,表示自相关系数序列Pm与零差异性不显著,该用户并发量历史数据时间序列无趋势性,执行步骤4.2;若Pρ<Ps,表示自相关系数序列Pm与零差异性显著,该用户并发量历史数据时间序列含有趋势性,执行步骤5,进行趋势性并发量的预测;

趋势性判定阈值Ps可调节趋势性判定的标准,Ps值越大,用户并发量历史数据时间序列越容易被判定为具有趋势性,反之,则具有较强趋势性的序列才能被判定为具有趋势性。本实施例中,Ps=0.05;

步骤4.2、进行周期性识别,识别方法为:

步骤4.2.1、确定功率谱序列Q的相邻数据变化序列H,为

其中,由于当v=1时,频率为v时并发量序列的功率谱的值可能会出现突出峰值,当时间序列为趋势性时这个峰值尤为突出,但这个峰值表示整个时间序列只有一个周期,因此这个值不能代表序列的周期性,所以在识别突出峰值时不考虑v=1时的功率谱;

步骤4.2.2、用μc代表相邻数据变化序列H的平均值,用σc代表相邻数据变化序列H的标准差,则根据3σ准则,判断频率为v时并发量序列的功率谱的奇异性,若hvc>3σc,为奇异值,则用户并发量历史数据时间序列含有周期性,执行步骤4.3;否则,为非奇异值,用户并发量历史数据时间序列不含周期性,则步骤终止;

步骤4.3、计算用户并发量历史数据时间序列的周期数,然后执行步骤6,进行周期性并发量的预测;

如果用户并发量历史数据时间序列含有周期性,则计算其周期数nperiod,并发量序列周期数为并发量序列在一个周期内的数值个数:

其中,vs为周期峰对应的频率,周期峰即在功率谱序列中突出大的一个功率谱数值。

步骤5、进行趋势性并发量预测,如图4所示,具体方法为:

步骤5.1、进行基于线性回归的数据拟合,采用线性回归的方法对趋势性应用并发量序列进行拟合,得到训练完成的线性回归模型fw(x)和原始数据与线性回归模型拟合后的残差数据序列,进而将原始序列与拟合序列的残差作为平稳型序列进行分析,拟合过程如下:

步骤5.1.1、设置进行线性回归拟合的目标函数为fw(ti)=wTti,fw(ti)表示ti时刻对应的拟合应用用户并发量,w为损失函数参数;本实施例中,w初始化设置为一个各元素为0的向量[0,0];

步骤5.1.2、设置进行线性回归的损失函数为了(w)表示真实应用用户并发量与拟合应用用户并发量的误差平方和;

步骤5.1.3、采用梯度下降法进行损失函数中的参数优化求解,得到损失函数参数w的更新公式为:其中,α为学习速率,j为w更新的标号,j=0,1,…,limit,limit为梯度下降的迭代次数;设置参数更新阈值ε,参数更新直到前后两次绝对值小于参数更新阈值ε或者更新迭代次数达到了设置的迭代次数limit;本实施例中,limit=200,ε=10-3

通过线性回归对原始数据训练完成之后,会得到两部分内容,一部分是训练完成的线性回归模型fw(x),另一部分是原始数据与线性回归模型拟合后的残差数据序列;

步骤5.2、进行基于ARMA的残差拟合;

在得到残差应用用户并发量数据之后,基于残差应用用户并发量数据的特点,采用ARMA算法(Auto-Regressive and Moving Average,自回归滑动平均)实现对残差数据序列的分析和建模;

对于ARMA(p,q)模型,有p+q+2个未知参数,即θ1、θ2、…、θq、μ和p是自回归阶数,q是移动平均阶数,是p阶自相关系数,θ1,θ2,…,θq是q阶移动平均系数,μ是移动位移值,是随机干扰项的方差值,其中,p和q需要进行预设,它们共同决定模型的拟合效果;本实施例中,p=4,q=1,即ARMA(p,q)模型由7个未知参数;

步骤5.3、进行基于Ljung-Box检验的二次残差验证;

采用Ljung-Box检验进行验证,Ljung-Box检验则是基于一系列滞后阶数,对二次残差是否属于高斯白噪声进行验证,二次残差是指拟合ARMA后得到的残差序列,判断序列总体的相关性或者说随机性是否存在,验证的本质是确定建立的ARMA模型是否有效,具体方法为:

步骤5.3.1、Ljung-Box检验的原假设H0为:原本的数据都是独立的,即总体的相关系数为0,能观察到的某些相关仅仅产生于随机抽样的误差,即其中h是指定延迟期数,根据二次残差的自相关图人为设定其取值的数值,本实施例中,h=10;Ljung-Box检验的备择假设Ha为:原本的数据不是独立的,即至少存在某个其中,k≤h;

步骤5.3.2、构造统计量R为:其中,u是用户并发量时间序列二次残差序列中元素的个数,其数值上和n相等,是二次残差序列k阶滞后的相关系数,该统计量R服从自由度为h的卡方分布,给定显著性水平α,则拒绝域是接受原假设意味着认为原序列是白噪声序列,相关性不存在,ARMA模型有效,则执行步骤5.4,否则认为序列存在相关性,ARMA模型无效,则返回步骤5.2,重新训练ARMA模型;

经过以上步骤,可以验证ARMA模型是否充分提取了残差中信息,并能够对残差进行精确的预测,若经过ARMA模型得到的二次残差不属于高斯白噪声,说明需要返回步骤5.2进行ARMA模型的重建;

步骤5.4、进行基于训练模型的预测;

通过对线性回归模型和ARMA的训练,能够分别得到两个模型:线性回归模型对原始应用用户并发量数据的趋势进行拟合,进而对未来下一段时间的应用用户并发量进行预测,ARMA模型对基于线性回归拟合后的残差数据进行拟合,进而对未来下一段时间的残差趋势进行预测;因此,趋势性应用用户并发量的预测包括两部分的预测结果之和,具体步骤如下:

步骤5.4.1、基于训练完成的线性回归模型,得到下一段时间tn+1,tn+2,…,tl的预测并发量为pre_conn+1,pre_conn+2,…,pre_conl,l表示预测并发量时间点的个数,同时也是预测并发量的个数,本实施例中吗,1=50;

步骤5.4.2、基于训练完成的ARMA模型,得到下一段时间tn+1,tn+2,…,tm的预测残差为pre_biasn+1,pre_biasn+2,…,pre_biasm

步骤5.4.3、下一段时间tn+1,tn+2,…,tm的预测趋势性应用用户并发量为pre_conn+1+pre_biasn+1,pre_conn+2+pre_biasn+2,…,pre_conm+pre_biasm

步骤6、进行周期性并发量预测,如图5所示,具体方法如下:

步骤6.1、初始化粒子群的最大粒子数、最大迭代次数以及粒子的位置和速度,本实施例中,每个粒子都包含2个元素,即支持向量机的惩罚因子C和核参数γ,一般情况下惩罚因子C的取值范围为[10-5,105],γ的取值范围为[0,10],由于这两个参数的合适范围不是预知的,所以查找先从这两个宽泛的范围开始,并在查找过程中逐渐缩小查找范围,一方面能减少计算量,另一方面能保证全局最优解的覆盖广度以及局部最优解的精确度;

步骤6.2、采用5折交叉验证法训练支持向量机模型,将并发量历史时间序列分为5个数据包,其中4个数据包用于训练,1个数据包用于测试训练结果;

支持向量机模型是一种基于统计学理论的监督学习模型,支持向量机的核心思想是将输入空间Rn非线性的映射到一个高维空间D上,从而将低维特征空间的非线性回归问题转化为高维特征空间的现行回归问题,假设给定的训练数据集为其中xi∈Rn,di∈D,N为数据个数,则支持向量机的回归函数f(xi)可表示为:

其中,w是权重向量,标识从输入空间Rn映射到目标空间D的非线性函数,<,>是内积符号,b为偏差。权重向量w与偏差b需要从给定数据中训练得出。为了训练w与b,可将问题转换为一个二次规划问题:

其中,C为惩罚因子,为一个正常数,其作用为权衡模型的复杂性和误差的关系;ξi与为引入的松弛变量,可以减小误差,可以扩大输入空间到高维特征空间的距离,以此来提高泛化能力;ε为ε不敏感损失函数,这个函数决定着它可以使其忽略实际值在某个范围内的误差,确保全局最小值的存在。

为了将输入空间映射到高维特征空间,需要引入一个核函数k(xi,xj):

支持向量机的核函数需要满足Mercer定理,此函数完成了对输入样本xi从低维特征空间向高维特征空间的非线性映射,xj为输入样本xi在高维特种空间的表达。这样就可以将输入样本与输出变量的关系在高维特征空间中表示为一个线性映射。也正是由于核函数的作用,支持向量机能够适用于非线性关系的学习问题。根据对偶原则,支持向量机的对偶问题可以被表达为:

其中,αi与两个对偶的拉格朗日乘数,则最终的最优化回归函数可表示为:

步骤6.3、利用预测准确率fCP作为适应度评价标准评价粒子适应度,预测准确率fCP为:

其中,为并发量预测值,和分别为指定的并发量历史数据coni可接受的准确区间的上界和下界,coni为并发量历史值,PL为预测的容错度,本实施例中容错度取5%;

粒子群中的每一个粒子需要被此标准重复的评价,因此可以从迭代过程中得出粒子的适应度向量,即由粒子在迭代过程中的最优解组成的向量;

步骤6.4、更新局部最优解与全局最优解,并将结果记录在局部最优解向量pi与全局最优解向量pg中;

在粒子群每次迭代过程中,每个粒子都会得到一个适应度数值,将此数值与该粒子的最优解相比较,如果适应度优于粒子的最优解,则更新此粒子的最优解为粒子的当前状态,此最优解为则为粒子的局部最优解;再将此局部最优解与全局最优解相比较,如果适应度优于全局最优解则更新全局最优解为当前粒子状态。全局最优解是所有粒子中适应度最优的解向量。通过迭代评价,可以得到目前为止粒子的局部最优解与粒子群的全局最优解,这两个值将被更新到局部最优解向量pi与全局最优解向量pg中记录下来;

步骤6.5、判断更新迭代是否达到终止条件,迭代的终止条件为最大迭代次数,如果最大迭代次数尚未达到,则更新粒子的位置和速度后,返回步骤6.4,进入下一个迭代循环,继续查找支持向量机参数的最优解;如果达到最大迭代次数,则迭代终止,粒子群优化结束,得到支持向量机的惩罚因子C与核参数γ的最优解,执行步骤6.6;本实施例中,最大迭代次数为100次;

步骤6.6、进行支持向量机预测,利用从粒子群优化算法中得到的惩罚因子C与核参数γ的最优解作用于支持向量机,并利用并发量历史数据时间序列训练支持向量机模型(原理见步骤6.2),然后利用训练结果及输入的预测时间序列标识,通过重建训练预测出并发量数据;所述预测时间序列的时间标识是由所要预测的并发量对应的时间点组成,即{tn+1,tn+2,…,tn+l},1为预测序列的长度,起始时间点为用户并发量历史数据时间序列最后一个时间点的下一时间点,各时间点的时间间隔与用户并发量历史数据时间序列的时间间隔相同。

本实施例提供的一种云环境下非平稳型应用用户并发量的预测系统及方法,针对云环境下非平稳型业务的趋势性与周期性应用用户并发量的特点,利用不同的预测方法构造了预测模型,对含有两种性质的并发量进行预测,提高了非平稳型业务并发量预测的准确性;并发量序列趋势性判定方法,本方法通过自相关系数与T分布结合分析,可以自动的识别趋势性并分发量序列的特征;并发量序列周期性判定方法,本方法通过周期图法计算出的功率谱序列与3σ准则结合分析,可以自动的识别周期性并发量的特征,并可以自动的计算出序列的周期数,解决了人工干预计算周期的问题;趋势性并发量序列预测方法,采用线性回归的方法对趋势型应用并发量序列进行拟合,并与ARMA算法结合,使拟合序列与残差拟合序列共同构造出预测序列,这种方法对具有趋势性的序列具有优秀的预测效果,且无需人工干预,自行完成预测过程;周期性并发量序列预测方法,利用粒子群优化的支持向量机对已知周期的并发量序列进行预测,能够精准的识别周期特征,尤其是对有趋势变化的周期性序列较其他预测方法有较好的预测效果,且无需人工干预,自行完成预测过程。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号