一种基于sfo-tsvr的短期电力负荷预测方法
技术领域
本发明涉及电力系统负荷预测
技术领域
,尤其是涉及一种基于SFO-TSVR的短期电力负荷预测方法。背景技术
短期负荷预测是电力系统经济调度的基础组成部分,也是电力系统安全运行的重要保障。随着社会经济的高速发展,各行各业对电能的需求与日剧增,与此同时,对电力负荷预测精度的要求也逐渐提高,提高负荷预测精度可以合理地安排电力生产和调度运行计划,也对电网的的经济效益有重要影响。
随着计算机技术、人工智能等领域的发展,目前短期电力负荷预测方法主要有支持向量回归、随机森林、深度神经网络等方法。其中,深度神经网络具有学习能力强、特征提取效果好等优点,但对数据规模和硬件需求较高;支持向量回归具有擅长处理小样本数据、泛化能力强等优点,但存在运行速度慢、精度相对较低的缺点;此外,孪生支持向量回归(twin support vector regression,TSVR)是在支持向量回归基础上,通过使用两个非平行的超平面将一个复杂的凸优化问题转化为两个简单的凸二次规划问题,大幅度地提高了模型的训练效率和拟合能力,然而孪生支持向量回归是参数依赖型模型,参数的选择会直接影响模型的预测精度,而人工调参的方式势必容易受主观经验影响,传统的智能优化算法也在寻优能力和收敛速度方面存在一定的局限性。以上均会影响预测结果的准确性以及预测效率。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于SFO(sailfish optimizer,旗鱼优化)-TSVR的短期电力负荷预测方法,以实现高效、准确预测的目的。
本发明的目的可以通过以下技术方案来实现:一种基于SFO-TSVR的短期电力负荷预测方法,包括以下步骤:
S1、获取历史负荷数据、气象数据及对应的日期类型数据,以作为原始样本数据;
S2、将原始样本数据划分为训练集和测试集;
S3、设定输入数据序列,并构建TSVR模型;
S4、基于训练集,并采用SFO算法,对TSVR模型进行训练;
S5、基于测试集,对训练后的TSVR模型进行验证,若验证通过,则执行步骤S6,否则返回步骤S3;
S6、根据设定的输入数据序列,将实际待预测日的相关数据输入训练后的 TSVR模型,得到实际待预测日的电力负荷预测值。
进一步地,所述步骤S1具体是对历史负荷数据和气象数据进行归一化处理,并将相应的日期类型数据量化到[0,1]范围内,以此得到原始样本数据。
进一步地,所述步骤S3具体包括以下步骤:
S31、设定输入数据序列具体为:待预测日前两日的气象数据、负荷数据及日期类型,待预测日前一日的气象数据、负荷数据及日期类型,以及待预测日的气象数据和日期类型;
S32、建立TSVR模型的回归函数:
f(x)=(f1(x)+f1(x))/2
其中,f(x)为TSVR模型的回归函数,f1(x)和f2(x)分别为TSVR模型的上、下界决策函数,w1和w2分别为决策函数f1(x)和f2(x)的权重系数,b1和b2分别为决策函数f1(x)和f2(x)的偏置项。
进一步地,所述步骤S32中权重系数和偏置项具体为:
G=[X e]
f=Y-eε1
h=Y+eε2
X=[x1,x2,…,xn]T
Y=[y1,y2,…,yn]T
其中,α和β为拉格朗日算子,X为输入矩阵,Y为输出矩阵,ε1、ε2为不敏感损失因子,ξ1和ξ2为松弛变量,e为元素均为1的列向量。
进一步地,所述步骤S4具体包括以下步骤:
S41、确定待寻优的TSVR的惩罚参数C1、C2,不敏感损失因子ε1和ε2以及高斯核参数σ,并设定SFO算法中,每个旗鱼的位置对应TSVR的一组参数;
S42、确定SFO的适应度函数:
其中,M为训练集样本数量,和yk分别为训练样本的实际输出值和期望输出值;
S44、根据待寻优参数可行域随机初始化旗鱼种群和沙丁鱼种群的位置,并设置SFO算法的相关参数;
S44、计算旗鱼种群和沙丁鱼种群的初始适应度值;
S45、确定初始状态下旗鱼种群和沙丁鱼种群的适应度值最优个体、并分别记为精英旗鱼和受伤沙丁鱼;
S46、旗鱼种群根据精英旗鱼的位置和受伤沙丁鱼的位置更新自身位置;
S47、沙丁鱼种群会根据旗鱼的攻击力和精英旗鱼的方位来更新位置;
S48、重新计算旗鱼和沙丁鱼的适应度值并进行比较,若沙丁鱼的适应度值优于旗鱼,旗鱼会占据沙丁鱼的位置并将沙丁鱼从种群中移除,具体可表述为:
if f(Si)<f(SFi)
其中,为当前旗鱼的位置,为当前沙丁鱼的位置,Si为沙丁鱼的适应度至,SFi为旗鱼的适应度值;
S49、判断是否达到最大迭代次数,若是,则输出当前精英旗鱼的位置,即TSVR 的最优参数,否则返回步骤S46。
进一步地,所述步骤S46中旗鱼种群更新位置的计算公式为:
其中,和分别表示当前精英旗鱼和受伤沙丁鱼的位置,r是0~1 之间均匀分布的一个随机数,λi是一个动态变化的系数,其表达式为:
其中,NSF和NS分别代表旗鱼和沙丁鱼的数量。
进一步地,所述步骤S47中沙丁鱼种群更新位置的计算公式为:
其中,表示当前沙丁鱼的位置,AP表示旗鱼的攻击力,在每次攻击之后均会线性降低,其计算公式为:
AP=A*(1-2Itr*ε)
其中,A和ε是旗鱼的攻击力变化系数,Itr是当前迭代次数。
进一步地,所述步骤S5具体包括以下步骤:
S51、根据设定的输入数据序列,从测试集中选取相应数据输入训练后的TSVR 模型,得到对应的验证预测值;
S52、将验证预测值进行反归一化处理,得到验证预测结果;
S53、基于测试集中对应的真实负荷数据,对验证预测结果进行评估,若评估值小于或等于预设阈值,则验证通过,执行步骤S6,否则返回步骤S4。
进一步地,所述步骤S53具体是采用计算平均绝对百分比误差的方式对验证预测结果进行评估。
进一步地,所述平均绝对百分比误差的计算公式为:
其中,MAPE为平均绝对百分比误差,K为待预测样本点的数量,和yi分别是负荷数据的验证预测值和真实值。
与现有技术相比,本发明通过构建SFO-TSVR短期电力负荷预测模型,采用 SFO算法对TSVR模型的参数进行自动调参,效率更高且更加稳定,能够加快TSVR 模型训练的收敛速度、保证TSVR模型训练的寻优精度,从而可靠保证训练后TSVR 模型输出预测结果的准确性以及预测效率;
本发明创建的SFO-TSVR的短期电力负荷预测模型是在经验风险最小化基础上建立的,因此可以适用于大规模数据的求解,克服了支持向量回归不擅长处理大量数据的缺点,且在训练小样本数据上表现更优;本发明创建的SFO-TSVR模型相对于支持向量回归、长短期记忆网络以及孪生支持向量回归等模型,具有更高的预测精度。
附图说明
图1为本发明的方法流程示意图;
图2为实施例中负荷预测过程示意图;
图3为实施例中预测负荷值与真实负荷值的对比示意图;
图4为实施例中本发明方法与传统预测方法之间预测结果对比示意图;
图5为实施例中本发明方法与传统预测方法之间模型评价指标对比示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
如图1所示,一种基于SFO-TSVR的短期电力负荷预测方法,包括以下步骤:
S1、获取历史负荷数据、气象数据及对应的日期类型数据,以作为原始样本数据,具体是对历史负荷数据和气象数据进行归一化处理,并将相应的日期类型数据量化到[0,1]范围内,以此得到原始样本数据;
S2、将原始样本数据划分为训练集和测试集,可将样本数据集前87.5%的数据作为训练集,后12.5%的数据作为测试集;
S3、设定输入数据序列,并构建TSVR模型,具体的:
S31、设定输入数据序列具体为:待预测日前两日的气象数据、负荷数据及日期类型,待预测日前一日的气象数据、负荷数据及日期类型,以及待预测日的气象数据和日期类型;
S32、建立TSVR模型的回归函数:
f(x)=(f1(x)+f1(x))/2
G=[X e]
f=Y-eε1
h=Y+eε2
X=[x1,x2,…,xn]T
Y=[y1,y2,…,yn]T
其中,f(x)为TSVR模型的回归函数,f1(x)和f2(x)分别为TSVR模型的上、下界决策函数,w1和w2分别为决策函数f1(x)和f2(x)的权重系数,b1和b2分别为决策函数f1(x)和f2(x)的偏置项,α和β为拉格朗日算子,X为输入矩阵,Y为输出矩阵,ε1、ε2为不敏感损失因子,ξ1和ξ2为松弛变量,e为元素均为1的列向量;
S4、基于训练集,并采用SFO算法,对TSVR模型进行训练,具体的:
S41、确定待寻优的TSVR的惩罚参数C1、C2,不敏感损失因子ε1和ε2以及高斯核参数σ,并设定SFO算法中,每个旗鱼的位置对应TSVR的一组参数;
S42、确定SFO的适应度函数:
其中,M为训练集样本数量,和yk分别为训练样本的实际输出值和期望输出值;
S44、根据待寻优参数可行域随机初始化旗鱼种群和沙丁鱼种群的位置,并设置SFO算法的相关参数;
S44、计算旗鱼种群和沙丁鱼种群的初始适应度值;
S45、确定初始状态下旗鱼种群和沙丁鱼种群的适应度值最优个体、并分别记为精英旗鱼和受伤沙丁鱼;
S46、旗鱼种群根据精英旗鱼的位置和受伤沙丁鱼的位置更新自身位置:
其中,和分别表示当前精英旗鱼和受伤沙丁鱼的位置,r是0~1 之间均匀分布的一个随机数,λi是一个动态变化的系数,其表达式为:
其中,NSF和NS分别代表旗鱼和沙丁鱼的数量;
S47、沙丁鱼种群会根据旗鱼的攻击力和精英旗鱼的方位来更新位置:
其中,表示当前沙丁鱼的位置,AP表示旗鱼的攻击力,在每次攻击之后均会线性降低,其计算公式为:
AP=A*(1-2Itr*ε)
其中,A和ε是旗鱼的攻击力变化系数,Itr是当前迭代次数;
S48、重新计算旗鱼和沙丁鱼的适应度值并进行比较,若沙丁鱼的适应度值优于旗鱼,旗鱼会占据沙丁鱼的位置并将沙丁鱼从种群中移除,具体可表述为:
if f(Si)<f(SFi)
其中,为当前旗鱼的位置,为当前沙丁鱼的位置,Si为沙丁鱼的适应度至,SFi为旗鱼的适应度值;
S49、判断是否达到最大迭代次数,若是,则输出当前精英旗鱼的位置,即TSVR 的最优参数,否则返回步骤S46;
S5、基于测试集,对训练后的TSVR模型进行验证,若验证通过,则执行步骤S6,否则返回步骤S3,具体的:
S51、根据设定的输入数据序列,从测试集中选取相应数据输入训练后的TSVR 模型,得到对应的验证预测值;
S52、将验证预测值进行反归一化处理,得到验证预测结果;
S53、基于测试集中对应的真实负荷数据,对验证预测结果进行评估,若评估值小于或等于预设阈值,则验证通过,执行步骤S6,否则返回步骤S4,其中,评估是采用计算平均绝对百分比误差的方式进行,通过计算平均绝对百分比误差:
其中,MAPE为平均绝对百分比误差,K为待预测样本点的数量,和yi分别是负荷数据的验证预测值和真实值,若计算得到的MAPE值小于或等于预设阈值,则验证通过,否则验证不通过;
S6、根据设定的输入数据序列,将实际待预测日的相关数据输入训练后的 TSVR模型,得到实际待预测日的电力负荷预测值。
本实施例应用上述方法,其具体的负荷预测过程如图2所示,本实施例的实现平台为Intel(R)Core(TM)i5-8300H [email protected]、RAM 8GB,实验环境基于Matlab平台。本实施例采用中国华东地区某市2009年2月20日至5月10日的真实数据对本发明方法进行验证,数据集特征包含24点历史负荷数据、气象数据和日期数据类型,其中气象数据包含日最高温度、日平均温度、日最低温度、相对湿度,日期数据类型包含工作日、周末和节假日。
其中,步骤S1和步骤S2具体过程包括:
对样本中的历史负荷数据和气象数据进行归一化处理,并将相应的日期类型数据量化到[0,1]范围内,具体方法如表1所示:
表1
表1中,Lmin和Lmax分别是负荷数据的最小值和最大值;W'是归一化后的气象数据;Wmin和Wmax分别是同类别气象数据的最小值和最大值。
之后将原始样本数据划分为训练集和测试集,其中训练集数据选取2009年2 月20日至4月30日的样本数据,剩下的样本数据作为测试集,对2009年5月10 日进行24点负荷预测实验。
步骤S3的具体过程包括:
一、构建输入数据序列:
选取待预测日前两日的日期类型和气象数据以及负荷数据、待预测日前一日的日期类型和气象数据以及负荷数据、待预测日的日期类型和气象数据作为TSVR 模型的输入序列,第i个输入序列Xi可表示为
Xi=[Di-2 Wi-2 Li-2 Di-1 Wi-1 Li-1 Di Wi]
式中,Di-2、Wi-2、Li-2分别代表待预测日前两日的日期类型、气象类型和负荷数据;Di-1、Wi-1、Li-1分别代表待预测日前一日的日期类型、气象类型和负荷数据;Di-1、Wi-1分别代表待预测日的日期类型和气象数据。
二、根据输入数据建立TSVR回归模型,包括:
1、建立TSVR的回归函数表达式:
TSVR的回归函数是其上、下界决策函数的平均值,可表示为
f(x)=(f1(x)+f1(x))/2
式中,f1(x)和f2(x)分别是TSVR的上、下界决策函数,其具体的表达式如下
式中,w1和w2分别是决策函数f1(x)和f2(x)的权重系数;b1和b2是偏置项。
2、求解TSVR的回归函数表达式:
将TSVR的上、下界决策函数的权重系数和偏置项的求解问题转化为如下两个小型的凸二次规划问题:
s.t.Y-(Xw1+eb1)≥eε1-ξ1,ξ1≥0
s.t.(Xw2+eb2)-Y≥eε2-ξ2,ξ2≥0
式中,C1和C2是惩罚系数;输入矩阵X=[x1,x2,…,xn]T;输出矩阵 Y=[y1,y2,…,yn]T;ε1,ε2是不敏感损失因子;ξ1和ξ2是松弛变量;e是元素均为1 的列向量。
引入拉格朗日算子α和β并根据KKT条件求出TSVR上、下界决策函数的权重系数和偏置项
其中,G=[X e],f=Y-eε1,h=Y+eε2。从而可以得到TSVR的回归函数
步骤S4的具体过程为:
一、确定算法的寻优目标和适应度函数:
确定待寻优的TSVR的惩罚参数C1、C2,不敏感损失因子ε1和ε2以及高斯核参数σ,每个旗鱼的位置对应TSVR的一组参数;
确定SFO的适应度函数,方法如下:
式中,M是训练集样本数量;和yk分别为训练样本的实际输出值和期望输出值。
二、SFO算法优化TSVR参数,具体过程包括:
1、初始化SFO算法:
设置待寻优参数的可行域,其中惩罚参数C1、C2∈[0.1,100],不敏感损失因子ε1和ε2∈[0.001,1],高斯核参数σ∈[0.01,10]。
根据待寻优参数可行域随机初始化旗鱼种群和沙丁鱼种群的位置,并设置SFO 算法的最大迭代次数M=50,旗鱼和沙丁鱼的数量分别为NS=15和NSF=35,旗鱼的攻击力系数A=4、ε=0.001;
计算旗鱼种群和沙丁鱼种群的初始适应度值;筛选初始状态下旗鱼种群和沙丁鱼种群的适应度值最优个体并分别记为精英旗鱼和受伤沙丁鱼。
2、SFO算法迭代寻优过程:
旗鱼种群根据精英旗鱼的位置和受伤沙丁鱼的位置更新自身位置,其具体的计算公式如下
其中,和分别表示当前精英旗鱼和受伤沙丁鱼的位置;r是0~1 之间均匀分布的一个随机数;λi是一个动态变化的系数,其表达式为
式中,NSF和NS分别代表旗鱼和沙丁鱼的数量。
沙丁鱼种群会根据旗鱼的攻击力和精英旗鱼的方位来更新位置,其位置更新公式为
式中,表示当前沙丁鱼的位置;AP表示旗鱼的攻击力,在每次攻击之后均会线性降低,其计算公式为
AP=A*(1-2Itr*ε)
式中,A和ε是旗鱼的攻击力变化系数;Itr是当前迭代次数。
重新计算旗鱼和沙丁鱼的适应度值并进行比较,若沙丁鱼的适应度值优于旗鱼,旗鱼会占据沙丁鱼的位置并将沙丁鱼从种群中移除,具体可表述为
if f(Si)<f(SFi)
判断是否达到最大迭代次数,若是,则输出当前精英旗鱼的位置并结束SFO 算法,即TSVR的最优参数,否则重复进行迭代寻优过程;
步骤S5中使用TSVR模型对测试集中的2009年5月10日24点负荷数据进行负荷预测实验,得到预测值并反归一化,得到最终预测结果如图3所示。
最后,对本发明的短期电力负荷预测结果进行评估,采用平均绝对百分比误差MAPE作为评估标准:
其中,K为待预测样本点的数量;和yi分别是负荷数据的预测值和真实值。
为验证SFO-TSVR的预测效果,与PSO-TSVR、WOA-TSVR模型进行对比实验,其预测结果如图4所示,从图中可以看出整体上SFO-TSVR模型的预测值更加符合实际负荷曲线,表明本发明中的SFO算法比PSO、WOA算法具有更好的优化性能,有效提高了模型的预测性能。
为进一步验证SFO-TSVR的预测结果,选取TSVR、LSTM、SVR模型作为对比模型,对比结果和模型的评价指标分别如图5和表2所示,结合图5和表2可知,本发明方法预测误差最小,与TSVR和LSTM模型相比,其平均绝对百分比误差分别降低了52.85%和41.30%,证明了本发明方法的有效性。
表2
模型
LSTM
SVR
TSVR
SFO-TSVR
MAPE/%
3.24
4.40
4.03
1.90
综上可知,本发明创建了SFO-TSVR的短期电力负荷预测模型,使用收敛速度快、寻优精度高的SFO算法选取TSVR模型,与其他模型参数确定方式相比,效率更高且更加稳定;
本发明创建的SFO-TSVR的短期电力负荷预测模型是在经验风险最小化基础上建立的,因此可以适用于大规模数据的求解,克服了支持向量回归不擅长处理大量数据的缺点,且在训练小样本数据上表现更优;
本发明创建的SFO-TSVR模型相对于支持向量回归、长短期记忆网络等模型、孪生支持向量回归等模型具有更高的预测精度。