改进F-score特征选择的MPSO-BP神经网络短期负荷预测*
2018-08-28丁坚勇朱炳翔田世明卜凡鹏陈俊艺朱天曈
丁坚勇,朱炳翔,田世明,卜凡鹏,陈俊艺,朱天曈
(1. 武汉大学 电气工程学院,武汉 430072; 2. 中国电力科学研究院,北京 100192)
0 引 言
电力负荷预测对电网规划以及电网安全稳定运行具有重要的意义,也是电力市场环境下编排调度计划、供电计划的依据。
随着智能电网的建设,电力负荷预测理论研究得到快速发展[1-2],负荷预测方法不断涌现,回归分析法[3]、小波分析法[4]、模糊理论法[5],神经网络法[6]、贝叶斯法[7]以及支持向量机法[8]等。但是就目前海量电力数据而言,现有负荷预测方法存在一定的局限性,回归分析法:只是单纯从统计意义上描述变量之间的数量关系,往往对数据量有所限制;神经网络法:在训练过程中容易出现过拟合现象,在面对多个输入变量可能会出现收敛速度慢以及陷入局部最小值等问题。文献[9]指出,对于海量数据,一方面,特征量越多获取的信息也就越多;另一方面,过多的特征会增加计算的复杂性,并且其中冗余的、不相关的甚至噪声信息会影响结果的准确性。
提出一种改进F-score特征选择的MPSO - BP神经网络短期负荷预测方法,将数据挖掘技术与MPSO-BP神经网络法结合。首先通过改进F-score特征评价准则对影响负荷的因素进行衡量;然后通过F-score Area法设定阈值筛选出最优特征子集,作为神经网络的输入变量;最后通过改进粒子群算法对BP神经网络的权值和阈值进行优化,完成短期负荷预测。结果表明,本文提出短期负荷预测方法对输入变量实现了有效降维,降低了海量数据间的冗余度,提高了短期负荷预测的精度。
1 改进的F-score特征选择算法
1.1 改进的F-score特征评价准则
特征选择是从原来的初始特征子集中选取可以代表原有特征子集全部或大部分信息的最优特征子集,消除一些冗余特征。针对短期负荷预测,如何从海量数据中提取出影响负荷的关键因素对于预测来说至关重要。
F-score提出一种基于类内类间距离的特征评价准则,是一种简单有效的特征选择方法[10]。但是传统的F-score特征评价准则有一定局限性,只适用于两类情况的特征选择,无法直接应用于多类情况,但是往往实际问题都是多类的,所以应对实际情况有必要将传统的F-score特征评价准则扩展成可以用于多类情况的特征选择。本文提出的改进F-score特征评价准则[10]适用于多类情况的特征选择。具体的改进F-score特征评价准则描述如下:
给定训练样本集Xk∈Rm,(k=1,2,…n),l(l≥2) 是样本类别数,nj为第j类样本个数,其中j=1,2,…l, 则训练样本中第i个特征的F-score值定义如下:
(1)
改进F-score特征评价准则是基于类间类内距离的类别可分性评价准则,将计算得到的F-score值进行降序排列,F-score值越大则表明该特征的辨别能力就越强,该特征也就越重要。
1.2 F-score Area法
特征选择过程实质上就是对重要特征的筛选,现有研究往往通过观察来剔除F-score值较小的特征,主观性太强,不能保证所选的特征就是最优的。如果重要特征与非重要特征之间存在明显分界线,那么阈值就是分界线所对应的值。根据这一思想,提出一种F-score Area法[11],通过设定阈值选取最优特征子集。首先将所有特征的F-score值进行降序排列,如图1所示。
图1 按F-score值大小排序示意图
接下来,将相邻两个特征F-score值与坐标轴围成的面积进行积分并且累加,得到一条单调递增的S曲线,对应S曲线的公式如下:
(2)
式中fi(i=1,2,…n),表示各个特征的F-score值,f0=0;曲线S是Sn上各点连接后的平滑曲线。所以阈值(的确定问题转化为求曲线S拐点问题,可以将阈值定义为S二阶差分的最大值。即:
f(i)=(Si+1-Si)-(Si-Si-1),(i=1,2,…,n-1;S0=0)
(3)
2 MPSO-BP神经网络算法
2.1 PSO 算法及其改进
2.1.1 PSO算法
粒子群优化算法是基于群智能的优化技术,通过粒子之间的相互作用对解空间进行搜索,从而得到最优解的过程。具体粒子群优化算法如下[12]:
假设N个粒子群在一个D维空间里搜索,设第i个粒子对应的位置和速度分别为xi=[xi1,xi2,…,xid]和vi=[vi1,vi2,…,vid];每个粒子对应的位置就是问题的一个可能解,根据相应的适应度函数值来判断是否为最优解。每个粒子自己搜索到的最优解记作Pid,整个粒子群搜索到的最优解记作Pgd。下面是算法的基本公式:
(4)
(5)
(6)
式中c1,c2为学习因子,用来调节Pid,Pgd,合适的c1,c2可以加快收敛;r1,r2为[0,1]之间的随机数;ω为惯性权重,用来反应之前速度的影响,一般开始取0.9,之后随着迭代过程递减至0.4;Vmax为速度极限,用来限制搜索过程中的速度。PSO算法虽然所需的经验参数较少,收敛速度也较快,但是在PSO搜索过程中易陷入局部极值,导致收敛精度不高。
2.1.2 MPSO算法
针对PSO算法存在的不足进行改进,综合考虑全局搜索能力与局部搜索能力,提出MPSO算法,MPSO算法针对影响算法性能重要参数,惯性权重ω以及学习因子c1,c2进行改进。惯性权重ω可以控制算法的搜索能力,PSO算法中惯性权重ω线性递减减慢了算法的收敛速度,在搜索后期,导致全局搜索能力变差,容易陷入局部最优;学习因子c1,c2是用来调节Pid,Pgd,PSO算法中固定的c1,c2不能在全局搜索与局部搜索之间寻求平衡;下面是针对惯性权重(以及学习因子c1,c2的改进策略[13]:
针对惯性权重ω,本文提出一种非线性权重PSO方法来改善线性权重的不足,具体描述如下:
(7)
其中ω为惯性权重,ωmax,ωmin为惯性权重的最大值和最小值,t是当前迭代次数,N为最大迭代次数。当t较小时,ω接近ωmax,确保了算法的全局搜索能力,当t逐渐增大时,ω非线性递减,确保在搜索后期具备一定的局部搜索能力,使得MPSO算法可以较好地在全局搜索与局部搜索之间寻求平衡。
由于粒子在搜索过程中希望前期的搜索速度大一点,可以对整个空间进行搜索;后期的搜索速度小一点,可以精细化搜索。同样针对学习因子c1,c2,也可以让学习因子随着搜索状态的变化而变化,对学习因子c1,c2进行如下改进:
(8)
式中t是迭代次数;N为最大迭代次数;c1s,c2s是学习因子c1,c2的初始值;c1e,c2e是最终值。在开始阶段c1取较大值,c2取较小值,粒子沿着自身的位置进行搜索,增强全局搜索能力;在搜索后期c2取较大值,c1取较小值,粒子沿着群体搜索的位置进行搜索,增强局部搜索能力,有利于得到全局最优解。
2.2 MPSO-BP神经网络算法
2.2.1 BP神经网络
神经网络是有大量神经元组成的非线性系统,网络之间的信息处理通过神经元之间的相互作用来实现。BP神经网络是一种误差反向传播的多层前馈网络,主要由输入层、隐含层和输出层组成,通过误差反向传播来调整权值和阈值,减小输出误差,知道满足终止条件为止[14]。
对于神经网络,首先需要确定适当的网络结构,本文输入层的节点个数由输入变量决定;输出层的节点个数只有一个;对于隐含层节点的选择,主要由以下经验公式决定:
(9)
式中m为隐含层节点数;n为输入层节点数;l为输出层节点数;α为0-10之间的常数,经过初步计算隐含层节点数的范围是4到13。通过试探法最终选取隐含层节点数为11的时候误差最小。
2.2.2 MPSO-BP神经网络短期负荷预测算法的实现
本文提出的改进F-score特征选择MPSO -BP神经网络短期负荷预测方法的建模原理如图2所示。
图2 短期负荷预测方法的建模原理图
根据本文的具体情况初始化BP神经网络,设置MPSO算法相关参数,用MPSO算法优化BP神经网络的权值和阈值,以神经网络输出的均方误差为适应度函数。
(10)
式中n为训练集样本个数;c为网络输出神经元个数,本文c取1;Yij为第i个样本理想输出值,yij为第i个样本实际输出值。
随着迭代的进行,训练误差不断降低,直到适应度值小于某个设定的值或者迭代次数大于设定的最大迭代次数时,算法停止迭代。此时适应度最优的那个粒子就是训练问题的最优解,接着就可以用优化后的BP神经网络针对短期负荷进行预测。
MPSO-BP神经网络短期负荷预测方法的具体实现步骤如下:
(1)根据选取的最优特征子集,初始化BP神经网络,并对输入特征进行归一化处理。
历史负荷数据的归一化:
(11)
式中xmax,xmin代表样本集负荷的最大值和最小值。
本文参考文献[15]中的量化方法,对于温度进行量化处理,如图3所示; 将天气划分为五个等级:晴、阴、雨、雪、大雪,对应的量化值为0.1、0.2、0.4、0.5和0.8;将日期类型分为4类:周一取0.7,周二至周五取0.9,周六取0.4,周日取0.3。
图3 温度区间及对应的取值
(2)初始化粒子群参数。初始化粒子群位置xid,vid速度,粒子群个数M,最大迭代次数N,惯性权重ω的初值,学习因子c1,c2的初值以及初始化Pid,Pgd;
(3)根据式(10)计算出各个粒子的适应度值,得到Pid,并选出最好的个体极值作为粒子群的Pgd,并判断此时Pgd或者迭代次数是否满足结束条件,若满足条件,将此时的粒子位置作为神经网络的权值和阈值,完成对神经网络的优化;
(4)若不满足条件,根据式(7)、式(8)更新惯性权重和学习因子,根据式(4)、式(5)对每个粒子的位置和速度进行更新,在转入步骤(3);
(5)由以上步骤得到优化后的BP神经网络,建立基于MPSO-BP的短期负荷预测模型,完成预测。
3 算例分析
以北京地区某年的负荷数据预测12月31日24点的负荷。为了全面地反映负荷特性,本文选取北京地区某年1月1日到12月30日的负荷数据,气象数据等,将训练样本和测试样本按照8:2的比例进行划分,利用F-score特征选择选取的最优特征子集作为输入变量,以MPSO算法完成对BP神经网络的优化,建立基于MPSO-BP的短期负荷预测模型,完成对北京地区某年12月31日24点的负荷预测。
3.1 最优特征子集的选取
通过对负荷数据、气象数据的特征选择选取了15个特征,图4是15个特征的F-score值降序排列示意图。降序排列后的1-15个特征向量分别为预测日h-2时刻负荷值、预测日前一周h时刻负荷值、预测日h-1时刻负荷值、预测日前一天h+1时刻负荷值、预测日前一日h时刻温度、预测日h时刻天气情况、预测日前一天h-1时刻负荷值、预测日日期类型、预测日前一天h时刻负荷值、预测日h时刻温度、预测日h时刻湿度、预测日h时刻风速、预测日h时刻气压、预测日前一日h时刻露点温度以及预测日h时刻露点温度。
图4 各特征F-score值降序排列后分布图
通过F-score Area法计算得到阈值为0.847 4,所以得到的最优特征子集为前10个特征,将得到的最优特征子集作为神经网络的输入,建立短期负荷预测模型。
3.2 负荷预测仿真与分析
通过F-score特征选择得到10个最优特征子集,并与建立好的MPSO-BP的短期负荷预测模型一起完成对某年12月31日24点负荷的预测,并与未进行特征选择的MPSO-BP以及BP神经网络负荷预测进行对比,预测值和实际值的对比如表2所示。
从表2可以看出,基于F-score特征选择的MPSO-BP神经网络短期负荷预测方法最大相对误差控制在3%以内,平均相对误差为1.79%,而为MPSO-BP神经网络短期负荷预测方法最大相对误差超过4%,平均相对误差为2.66%,传统BP神经网络预测方法的最大误差6.31%,平均相对误差为3.48%。结合以上分析,提出的短期负荷预测方法在预测精度上得到了改进。
表2 对比结果
为了进一步检测预测模型的效果,表3是三种算法的误差性能比较,列出了三种预测方法的最大相对误差以及均方误差。
表3 性能比较
表4为采用本文方法得到的该年最后一周每天24点负荷预测的平均相对误差。
表4 最后一周每天负荷预测平均相对误差
从表3、表4可以看出,本文所提出的基于F-score特征选择的MPSO-BP神经网络负荷预测方法均方根误差较另外两种方法小,更稳定。具有较高的预测精度。
为进一步直观了解三种预测方法的实际情况,图5是三种预测方法下的某年12月31日24点负荷的预测值以及实际值负荷曲线。
从图5可以看出,采用F-score特征选择的MPSO-BP神经网络负荷预测方法的误差变化较为均匀,与实际负荷曲线的形态较为相似,与MPSO-BP、BP神经网络负荷预测方法相比,预测精度更高,预测更为准确。
图5 三种负荷预测方法的预测值与实际值的负荷对比
4 结束语
文中的F-score特征选择算法实现了对海量负荷数据的挖掘,通过F-score值衡量每个特征的重要程度,再通过F-score Area法设定阈值筛选出影响负荷的关键因素,组成最优特征子集,作为神经网络的输入变量,利用MPSO算法优化BP神经网络的权值和阈值,避免陷入局部最优,建立短期负荷预测模型。
预测结果表明,所提出的改进F-score特征选择的MPSO-BP神经网络短期负荷预测方法输出稳定性好,收敛精度高,与MPSO-BP神经网络预测方法及传统的BP神经网络预测方法相比,提高了负荷预测的精度。