基于VMD和BA优化随机森林的短期负荷预测
2022-05-10刘成龙
刘成龙, 高 旭, 曹 明
(1. 国网河北省电力有限公司,河北 石家庄 050000; 2. 国网河北省电力有限公司信息通信分公司,河北 石家庄 050000)
0 引 言
负荷预测在电力系统能量管理和调度中起着重要的作用。而准确的负荷预测有助于电力系统运维人员及时做出机组组合决策和安排设备检修,降低发电成本,同时对电力系统的可靠性评估也具有重要意义[1-2]。此外,负荷预测还可用于负荷切换、需求侧管理、识别和预测能源消耗模式等诸多方面,以支持电力公司未来的系统运行[3]。
短期负荷预测方法主要根据电力系统的历史数据来确定未来的电力负荷。目前研究来看,许多预测模型可用于负荷预测,包括多元线性回归模型[4]、灰色预测模型[5]、支持向量机模型[6]和长短期记忆模型[7]等。文献[4]考虑了温度近因效应,利用多元线性回归模型实现负荷预测,该预测模型结构简单,计算速度快。文献[5]对传统灰色关联分析方法进行了综合化改进,进而获取具有高相似度的训练数据集,并利用蝙蝠算法优化神经网络参数实现短期负荷预测。文献[6]采用长短期记忆神经网络进行超短期负荷预测,其中预测模型的最优超参数主要通过随机搜索的方法进行确定。文献[7]利用投影原理和灰色关联分析提取相似日集合,再利用随机森林算法进行电力系统短期负荷预测。
负荷序列受到环境中温度、湿度以及日类型等诸多因素的影响而不断波动,因此直观上难以获取负荷数据的内在特征[8]。目前研究中关于提取数据特征的方法包括小波变换[9]、经验模态分解(empirical mode decomposition, EMD)[10]和变分模态分解[11]等。其中VMD方法是Dominique Zosso等人针对EMD方法的不足于2014年首次提出的,该方法对采样和噪声具有很强的鲁棒性[12]。VMD方法自适应地确定相关频带,同时估计相应的模式,从而适当地平衡了它们之间的误差。本文首先采用VMD方法对短期负荷原始数据进行分解处理,分析不同模态函数分量的具体变化特征,再分别对模态函数分量进行预测和重构。由于RF算法在处理高维数据时具有较小的泛化误差,因此在诸多领域得以应用[13]。但RF回归模型中的决策树棵树和分裂特征数的具体值关系到模型预测的准确度,因此在对原始负荷分解后得出的模态函数分量进行预测时,本文采用BA算法对RF回归模型中的两个重要参数进行寻优确定,从而获得BA-RF最佳预测模型,最后对不同模态函数分量的预测结果进行累加得到最终短期负荷预测结果,即形成了VMD-BARF方法实现短期负荷预测。
1 短期负荷预测实现过程的理论基础
1.1 变分模态分解原理
为了获取电力负荷历史数据VMD分解后各个模态函数分量的带宽,需要经过如下步骤:1) 通过希尔伯特变换计算与每个模态函数分量相关的分析信号,以获得单边频谱;2)将各模态函数分量的频谱移到对应的基频带;3) 通过解调信号的高斯平滑度估计带宽。由此产生的约束变分问题如下式所示:
式中:uk(t)——电力负荷历史数据的模态函数分量,MW;
{uk}——各模态函数分量的集合;
wk——电力负荷历史数据的第k阶模态函数分量的中心频率,Hz;
{wk}——中心频率集合;
f(t)——电力负荷历史数据,MW;
δ(t)——狄拉克函数。
引入拉格朗日乘子和二次惩罚因子到上述公式得到如下形式:
式中:λ——拉格朗日乘子;
α——二次惩罚因子。
各模态函数分量的估算公式与中心频率的计算公式如下所示:
1.2 随机森林原理
1995年Breiman等人针对数据挖掘中回归预测和特征分类的问题提出了RF算法。该算法是由分类回归树 (classification and regression tree, CART)和Bagging相结合的一种综合算法。RF算法的基本单元是决策树,通过多棵决策树的组合可以有效提高分类和预测的准确性,其中每棵树所对应数据集的产生和特征子集的选择具有随机性[14]。该算法先是利用Bagging算法生成决策树的训练集,再选择CART决策树的特征子集。
1.2.1 CART 决策树
1984年,Breiman L等人提出了CART决策树的概念,该方法是一种二分递归分割技术,在除叶节点的其他任一节点将当前数据样本集进行二分割。CART决策树是以基尼指数作为属性选择量度,其理论计算公式如下所示:
式中:GD——基尼指数;
pi——i类元素出现的概率;
D——数据集;
m——数据集中所包括的类别。
若数据集D以属性A进行二元划分,则对应的基尼指数如下所示:
整棵决策树的生长分裂过程是以在属性A最小基尼指数的子集D1和D2作为相应的分裂子集。
1.2.2 Bagging 算法
1994年,Breiman L将Bagging算法引入到CART决策树中,以解决其预测准确度较低的问题。Bagging算法通过对样本数据集进行部分随机抽取以生成决策树。该方法能够有效提高泛化能力。RF回归模型预测功能的实现框图如图1所示。
图1 RF回归模型预测功能的实现框图
1.3 蝙蝠算法原理
1995年Breiman蝙蝠算法的设计原理来源于蝙蝠的回声定位行为,由Yang教授于2010年提出的一种启发式智能优化算法。该算法自提出以来,被广泛应用于多个领域,可解决能源调度和最佳路径规划问题、函数优化求解问题、特征分类问题、视觉追踪问题等;并通过与随机森林算法、长短期记忆算法、BP神经网络等人工智能算法相结合,用于解决分类预测和数据挖掘问题。
与其他启发式智能优化算法相比,蝙蝠算法的参数可以动态地进行控制,也能在全局搜索和局部搜索之间进行切换,因此具有搜索效率高、鲁棒性好等优点。BA算法中有3个关键参数:蝙蝠的搜索脉冲响度A、脉冲频率f和脉冲频度R。该算法基于3个规则假设:
1) 蝙蝠使用回声定位行为来感知距离,且能够分辨出猎物和障碍物的区别。
2) 蝙蝠在位置Xi,以速度Vi进行随机飞行,通过对脉冲频率和脉冲响度进行调节来实现对猎物的搜索。此外,蝙蝠能够根据猎物和自身的距离调整所发射的脉冲频率,并在接近猎物时调节脉冲频度。
3) 脉冲响度从最大值A0逐渐降低至最小值Amin。在d维搜索空间中,第i只蝙蝠在t时刻的位置为,速度为,且蝙蝠种群中的最优位置为X*,则在t+1时刻对于全局搜索的情况,第i只蝙蝠的位置和速度被更新为:
式中:β——[0,1]区间服从均匀分布的随机数;
fi——第i只蝙蝠的频率,在[fi, fi]区间内随机均匀产生。
对于局部搜索的情况,需要从当前的最优解集中,随机挑选出一个优良个体,则每只蝙蝠的新位置附近随机产生,更新公式为:
式中:ε——[–1,1]区间的随机变量;
A(t)——全部蝙蝠在t时刻的平均脉冲响度。
在迭代过程中,脉冲响度A(t)和脉冲频度R需要进行实时更新,以确保算法在全局搜索和局部搜索间达到良好的平衡。更新公式为:
其中 α、λ 均为常数,0<α<1,λ>0。
蝙蝠算法流程图如图2所示。
图2 蝙蝠算法流程图
1.4 分布式计算框架spark
Spark是由加州大学伯克利分校的AMP实验室于2009年研发的一款基于内存的分布式计算框架。Spark在MapReduce的基础上进行了大量改进和优化,性能得到大幅提升。弹性分布式数据集(RDD)是Spark中的核心概念,它是一种分布于各个计算节点、存储于内存中的只读型数据集。用户将外部数据加载到内存中生成RDD;再经过一系列转换操作,每次转换都会生成一个新的RDD;最后执行动作操作,对RDD进行计算并返回结果,从而实现应用程序的功能。因此,本文的算法程序均在Spark平台下运行,以提高计算效率。
1.5 评价指标
目前能够对算法预测效果进行评价的指标较多,主要包括平均绝对误差、均方根误差、平均绝对误差和拟合优度等。本文仅以平均绝对误差作为短期负荷预测效果的评价指标,其计算公式如下所示:
式中:MAE——平均绝对误差,MW;
RMSE——均方根误差,MW;
MAPE——平均绝对百分比误差,%;
n——负荷数据集点数;
yi——原始负荷数据,MW;
2 算例分析
短期负荷预测流程如图3所示。从图中可以看出,VMD-BA-RF方法首先对短期负荷数据进行VMD分解处理,获得5个模态函数分量,然后将具有相同特征的模态函数分量进行合并获得3个模态函数重构分量,再利用BA-RF模型分别对3个模态函数分量进行预测,最后重构出负荷预测结果。
图3 短期负荷预测流程
实 验 使 用 的 处 理 器 为 Intel(R) Core(TM) i5-10210U CPU@1.60 GHz,内存大小为 15.8 GB。RF模型参数中决策树棵树和分裂特征数的取值范围均设置为[1, 1000]。本算例采用2014年某地区01-13至01-19之间的短期负荷数据进行算法验证,该样本数据中每隔15 min进行一次负荷数据点采集,一周内共计采样672个数据点,所对应的实际负荷数据曲线如图4所示。从图中难以发现实际负荷数据所具有的内在特征,不同日类型所对应的负荷峰值与谷值均不相同。
图4 一周内的电力负荷序列
以前6天576个数据点作为训练数据集,后1天96个数据点作为测试数据集。为了获取特征互异的几组模态函数分量,首先采用VMD方法对原始数据集进行分解处理。当模态函数分量为7个时,其对应的中心频率分布如图5所示,从图中可以看出 IMF1~IMF3的中心频率相差较大,而IMF4~IMF7的中心频率相差较小,因此VMD分解层数可在4~7层之间进行选择。本文的VMD分解层数取5层,实际负荷数据被分解后的5个模态函数分量如图6所示。从图中可以看出,分量IMF1振幅最大但不具有周期性,分量IMF2和IMF3振幅接近且具有周期性,分量IMF4和IMF5振幅较小且具有周期性。由于不同模态分量进行任意组合后并不会与原始负荷数据产生差异,因此为了降低负荷预测算法的建模任务,可以将具有近似特征的模态函数分量进行合并,最后形成3组重构序列,如图7所示。
图5 不同模态分量的中心频率分布
图6 模态函数分量
图7 重构后的模态函数分量
由于RF模型的预测准确度受到决策树棵树和分裂特征数的影响,因此本节采用BA算法优化RF模型,从而获取最佳模型参数。其中优化迭代次数设置为100次,种群规模设置为20。在对模态函数分量R1、R2、R3进行预测的过程中,以平均绝对误差最小作为优化目标,利用BA算法获取最佳决策树棵树和分裂特征数,R1、R2、R3所对应的优化过程迭代曲线如图8所示,优化结果如表1所示。表2为不同模态分量R1、R2和R3对应的优化运行时间,对比正常运行环境和Spark平台环境下BARF模型实际优化时间可以看出,在Spark平台环境下BA算法优化RF模型的实际运行时间明显小于正常运行环境下的实际运行时间。
表1 不同模态分量对应的优化结果
表2 不同模态分量对应的优化运行时间
图8 目标函数迭代曲线图
利用VMD-BA-RF方法分别对实际分量R1、R2和R3进行预测,其结果如图9~图11所示。从图中可以看出,VMD-BA-RF方法对各模态函数分量均具有较好的预测效果。
图9 模态函数分量R1的预测结果
图10 模态函数分量R2的预测结果
图11 模态函数分量R3的预测结果
将VMD-BA-RF方法所预测的3个模态函数分量进行重构得到最终的短期负荷预测结果。为了体现VMD-BA-RF方法在短期负荷预测方面的优越性,将RF方法、BA-RF方法、VMD-RF方法和VMD-BA-RF方法的短期负荷预测结果进行对比,4种方法的预测结果如图12所示。其中RF方法存在模型参数难以确定的问题, BA-RF方法实现了模型参数的最优选取,VMD-RF方法分解出原始数据的模态特征,实现分量预测,而VMD-BA-VMD方法具有模型参数寻优和模态分解的功能。从图12中可以看出,相比于传统RF方法、VMD-RF方法和BA-RF方法,本文所提方法拟合度较高,优势明显。表3为4种预测方法对应的性能指标,其中VMD-BA-RF方法的 MAE为 31.99 MW,RMSE为53.28 MW,MAPE为0.60%,所提方法的这3项指标在所有方法中均是最小值。因此,4种预测方法性能指标的对比结果表明本文所提VMD-BA-RF方法的预测准确度最高。
图12 4种方法的预测结果
表3 4种预测方法对应的性能指标
3 结束语
本文提出了一种基于VMD和BA优化RF参数的短期电力负荷预测方法,得到如下两个结论:
1)通过VMD方法对负荷序列进行分解处理可以获得具有不同特征的模态函数分量,将具有相近振幅的模态函数分量进行合并,进而为RF模型提供特征互异的训练数据和预测数据。算例结果表明VMD-RF方法的预测准确度高于传统RF方法。
2)采用BA算法确定RF模型中最佳决策树棵树和分裂特征数,可以进一步提高短期负荷预测的准确度。因此,用VMD方法和BA算法共同改进RF模型,可以得到短期负荷预测的最佳预测效果。