本发明涉及计算机通信和优化技术领域,特别涉及一种用于流量预测的支持向量机的优化方法。
背景技术:
网络流量预测是一个复杂的问题,很多学者进行了广泛研究和探索,提出了很多方法,主要包括线性预测方法和非线性预测方法。支持向量机是一种得到广泛应用的非线性预测方法,尤其最小二乘支持向量机(leastsquaredsupportvectormachine,lssvm)克服了神经网络的需大样本、过度拟合和“维数灾难”等缺点,具有很强的泛化预测能力,因此被广泛地应用于多种时序数据的预测领域。
支持向量机在运用中除权重系数外,其性能受到多个参数的影响,包括惩罚因子、核函数的参数、损失影响因子等,选择不当容易使向量机在训练中陷入局部极值,造成最后在实际预测中的误差,或者适用范围减小。因此支持向量机在应用中一个关键问题是对其模型中参数的选择和优化。已有的研究一般通过遍历的方法进行参数的择优选择,存在收敛速度慢、可优化的参数有限制、易陷入局部极值等缺点。蝗虫优化算法(grasshopperoptimizationalgorithm,goa)是受蝗虫繁衍、聚集、觅食和迁移等行为启发而提出的仿生优化算法,于2017年被shahrzadsaremi,seyedalimirjalili等人提出(参见“grasshopperoptimization:theoryandapplication”,elsevier,advancesinengineeringsoftware[j],vol105,march2017,pages30-47)目前被应用于多种数学模型中的参数优化、特征选择等领域。已有多个有关支持向量机的研究文献采用了goa算法进行参数优化,如论文“基于goa-svm的短期负荷预测”(宫毓斌,滕欢著,《电测与仪表》,2019年4月26日网络首发)中提出的针对电力负荷预测的支持向量机参数的goa优化、论文“混合蝗虫优化算法求解作业车间调度问题”(闫旭,叶春明,《计算机工程与应用》2019,55(6),257-264页)中提出的针对作业调度的支持向量机的goa优化。不过在这些研究中,所针对的时序数据的突发性均不如网络流量,因此可以使用较长的训练数据以及较长的训练收敛时间,可以使用经典的goa优化算法。但这些方法并不适合网络流量预测。网络流量呈现很大的突发性,信息流的流量受到多种突发因素的影响,呈现突发之间间隔短、突发强度大等特点,较长的优化时间不适合这种场合。
技术实现要素:
本发明的目的在于克服现有技术中所存在的上述不足,提供一种用于流量预测的支持向量机的优化方法。
为了实现上述发明目的,本发明提供了以下技术方案:
一种用于流量预测的支持向量机的优化方法,步骤包括:
s1,建立用于网络流量预测的最小二乘支持向量机模型;
s2,根据最小二乘支持向量机模型,建立用于蝗虫优化算法的参数优化目标函数,并确定需要优化的参数,需要优化的参数构成待优化参数组合;
s3,采用蝗虫优化算法对待优化参数组合进行参数优化,参数优化过程中采用参数优化目标函数计算蝗群个体的适应度;
s4,将优化后的参数组合代入最小二乘支持向量机模型,进行网络流量预测。
s3的步骤包括:
s11、将goa优化算法的参数初始化,其中,将待优化参数组合作为goa优化算法中的蝗虫;
s12、生成蝗群位置;
s13、根据参数优化目标函数计算蝗群个体的适应度,并找出当前最优解的位置作为目标位置;
s14、采用位置更新公式更新搜索个体位置,更新搜索个体位置过程中,使用特定的控制参数;
s15、判断是否达到最大迭代次数,若达到,则输出用于流量预测的lssvm最优参数组合,若未达到,返回步骤s13。
用于网络流量预测的最小二乘支持向量机模型的公式为:
其中,k(x,xi)=exp{-||x-xi||2/2σ2}为核函数,σ是核函数的参数,ai表示lagrange乘子,b为lssvm的偏差,xi∈rn是输入向量,m为流量训练样本个数,
参数优化目标函数为:
其中,p为最小二乘支持向量机模型中的惩罚因子,σ为最小二乘支持向量机模型中的核函数参数,ε是不敏感损失因子,yi为流量训练样本中的输出向量,
位置更新公式为:
xi=si+gi+ai
其中,xi表示蝗虫群体中第i个蝗虫的位置;si表示第i个蝗虫受到的与其他蝗虫的交互力的影响;gi表示第i个蝗虫受到的重力影响;ai表示第i个蝗虫受到的风力影响。
更新个体的位置使用的特定的控制参数的计算公式为:
其中,c是控制参数,
一种用于流量预测的支持向量机优化方法的系统,包括至少一个处理器,以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述任一项的方法。
与现有技术相比,本发明的有益效果:
提出一种针对支持向量机的改进的蝗虫优化算法,对网络流量预测中使用的支持向量机的参数进行优化,使向量机能够对通信网络流量进行正常或以更高的效率进行预测。
附图说明
图1为一种用于流量预测的支持向量机的优化方法的流程图;
图2为本发明实施例1中的goa优化算法流程图。
具体实施方式
下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
实施例1
本发明针对的通信网短期流量预测,其一般步骤是首先选定所使用的支持向量机,然后确定其模型和需要优化的参数,再利用蝗虫优化算法进行优化。在进行参数优化的步骤中,选择使用本发明提出优化控制参数,流程图如图1所示。其具体步骤为:
步骤1:设有m个流量训练样本{xi,yi}m,xi∈rn和yi∈r分别是输入向量和输出向量,选定最小二乘支持向量机(leastsquaressupportvectormachine,lssvm)作为预测器,其数学模型为:
其中,ω为权重;p为lssvm的惩罚参数;ξi为lssvm的松弛变量;
其中,ai表示lagrange乘子。对公式(2)求偏导得到公式(3):
消去ω和ξi,可得公式(4):
其中,q=(1,...,1)t,a=(a1,a2,...,am)t,y=(y1,y2,...,ym)t,通过求解公式(4),lssvm模型的估计公式如公式(5)所示:
其中:k(x,xi)=exp{-||x-xi||2/2σ2}为核函数,σ是核函数的参数。
步骤2:建立对最小二乘支持向量机进行goa优化的目标函数和待优化参数:
针对步骤1中支持向量机的goa优化的目标函数可表示为公式(6):
上述最小二乘支持向量机模型中的优化参数是支持向量机中的惩罚因子p,核函数参数σ,不敏感损失因子ε。此外上述模型中的yi为步骤1中训练集中的流量变量,
步骤3:确定goa优化算法的过程和其中的方法。
将支持向量机的待优化的参数组合[p,σ,ε]作为goa优化算法中的蝗虫,蝗虫个体位置的更新由种群交互力、重力和风力影响综合决定,在本方法中,我们采用如下的位置更新公式:
xi=si+gi+ai(7)
其中,xi表示蝗虫群体中第i个蝗虫的位置;si表示第i个蝗虫受到的与其他蝗虫的交互力的影响;gi表示第i个蝗虫受到的重力影响;ai表示第i个蝗虫受到的风力影响。上述公式相对于经典goa算法进行了改进,其中使用随机数r1,r2,r3作为各影响力的系数,使更新可以考虑环境因素的随机影响,其中,r1,r2,r3为处于[0,1]之间的随机数。交互力影响si可表示为:
其中,dij=|xj-xi|表示第i个蝗虫和第j个蝗虫的距离;
式中,f表示吸引强度;l表示吸引尺度;r表示舒适距离。
此外,
为实现优化问题的求解,使用如下数学模型:
公式(11)忽略重力因素的影响,同时假定风向总是指向目标位置。ubd、lbd分别表示第i个蝗虫第d维变量的上下边界;
式中,cmax=1、cmin=0.00001;t、tmax分别表示当前迭代次数和最大迭代次数,th为一个由经验确定的门限值,其中
goa优化算法流程如图2所示,步骤包括:
步骤s11、将待优化参数组合[c,σ,ε]作为goa优化算法中的蝗虫;
步骤s12:goa算法参数初始化:蝗群的种群规模n、最大迭代次数t、变量维数dim=3以及优化变量的取值范围[lbub],p、σ及ε的取值范围分别为区间(0,1)之间的随机数;
步骤s13:随机初始化生成蝗群位置;
步骤s14:根据目标函数(6)计算蝗群个体的适应度,同时找出当前最优解的位置将其作为目标位置;
步骤s15:根据公式(7)更新搜索个体位置,其中,优化控制参数c的取值根据公式(12)求得;
步骤s16:判断算法是否达到终止条件。判断算法是否达到最大迭代次数t,若满足,则输出lssvm最优参数进行预测;反之,返回步骤s14。
一种用于流量预测的支持向量机优化方法的系统,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述方法。