基于DKDE 与改进mRMR 特征选择的短期光伏出力预测

2021-07-30 02:53刘嘉诚赵宏炎吴泽阳刘晓明
电力系统自动化 2021年14期
关键词:互信息特征选择出力

刘嘉诚,刘 俊,2,赵宏炎,吴泽阳,刘晓明,吴 柳

(1. 陕西省智能电网重点实验室(西安交通大学电气工程学院),陕西省西安市 710049;2. 人工智能与数字经济广东省实验室,广东省广州市 510320)

0 引言

近年来,随着节能减排政策的不断推进、光伏发电技术的日益成熟以及发电成本的不断下降[1],中国光伏产业迅速发展,装机容量不断攀升,截至2019 年底,全国光伏装机总量已达204.3 GW,且全年光伏发电量达到224.3 TW ⋅h[2]。然而,由于光伏发电本身受天气等自然环境因素影响,其出力存在较高的不确定性与波动性,这对系统的安全稳定运行、经济调度以及电能质量治理带来巨大的威胁与挑战[3-4],准确预测光伏出力具有重要意义。

光伏出力预测按照时间尺度可分为超短期(未来4 h)、短期(未来72 h)与中长期预测(未来1 月至1 年)[5];按预测形式又可分为点预测、区间预测与概率预测。在点预测研究中,时间序列方法、回归分析方法等统计学方法因其建模简单且适应性广得到了广泛应用[6-7],但对大量数据的依赖性也增加了数据处理的难度,可靠有效的特征处理对于挖掘历史数据中的规律、提升光伏预测精度十分必要。

特征工程从样本数据的特征集出发,通过对各类特征的构建、提取或算法选择,挖掘与光伏出力相关性最大的特征子集合,降低无关或弱关联气象特征对于模型的干扰,在简化模型的同时改善其预测性能。文献[8-10]构建了风速3 阶差分最大值、辐照度最大值比、辐照度趋势分量等特征;文献[11]构造包括数值指标、增量指标、波动指标在内的瞬时气象模式特征以及时窗趋势特征;此类特征的构建方法往往依赖大量的专业知识并且可靠性与有效性难以保证。文献[12]通过深度神经元层将气象特征进行非线性映射,尽管该方法可以构造出新的特征空间,但是训练统一适用的深度网络难度较高,且气象数据与光伏功率之间的关联性难以直接解释。文献[13-15]采用主成分分析(PCA)算法对特征量进行处理,该算法仅为特征的线性变换与降维,具有一定的局限性。文献[16-17]分别采用相关系数和最小绝对值收敛与选择算子(least absolute shrinkage and selection operator,LASSO)回归进行特征筛选,然而这两者只能反映变量之间的线性相关性,与实际情况差距较大。文献[18]将最大相关最小冗余(max-relevance and min-redundancy,mRMR)算法引入光伏预测的特征筛选环节中,以气象特征与光伏输出两两之间的互信息熵作为特征评价指标,尽管mRMR 算法简化了多维变量的互信息计算,但仍然具有初始特征固定、特征集需要遍历寻优等缺点。

针对现有光伏出力预测研究中特征相关性分析以及特征筛选方法的不足,本文以互信息为特征评价指标,提出了一种基于扩散核密度估计(diffusion kernel density estimation,DKDE)和改进mRMR 特征选择算法,并建立了基于XGBoost(eXtreme gradient boosting)算法的高精度光伏发电预测模型。主要创新性贡献包括:①针对传统互信息计算中变量离散化时未考虑变量实际概率分布的问题,提出基于DKDE 的区间划分方法,根据样本落入各个区间的概率计算互信息以表征变量间相关性;②提出一种改进的mRMR 特征选择算法,并行选择多个初始特征进行特征子集的扩充,并以特征子集的总信息熵作为其权重系数,以充分利用多特征子集的信息;③在建立多个特征子集的基础上,基于XGBoost 算法建立短期光伏出力预测模型,与神经网络、支持向量机回归(SVR)等其他机器学习方法相比,其在超参数调整、训练速度等方面都具有显著优势。最后,选取美国俄勒冈州本德市的一座实际光伏电站数据进行模型的训练与测试,验证所提出的特征选择方法与预测模型的有效性与准确性。

1 光伏预测模型概述

本文光伏出力预测的框架如图1 所示。

图1 光伏出力预测框架Fig.1 Framework of photovoltaic output forecasting

预测模型建立的主要步骤如下。

1)数据预处理

对于给定的光伏电站历史运行数据与气象监测数据,根据数据标签对异常日数据进行剔除,对于缺失值采用前后采样点的均值替代,最后对所有数据进行最大最小归一化处理,避免数量级差异对预测造成的不利影响。

2)特征集筛选

基于DKDE 对互信息的计算进行改进,并以此作为气象特征与光伏出力间相关性的量度;通过改进的mRMR 特征选择算法并行构建多个特征子集,同时计算出各个子集的总互信息熵作为其得分,根据得分保留部分最优子集。

3)模型构建与光伏预测

分别对各个特征集构建基于XGBoost 算法的光伏预测模型。然后,输入待预测日各时刻气象信息得到各模型的预测输出。最后,将各输出值按特征集得分加权求和,即为待预测日的光伏发电功率。

2 基于DKDE 的互信息计算

作为变量之间相关性的有效量度,互信息能够表征某一特征对另一变量概率分布的可解释性,而不仅仅局限于线性或某种特定的非线性关系。因此,特别适用于描述气象参数与光伏出力之间复杂关联性的强弱程度。

给定变量X和Y的联合概率分布为p(x,y),其中,x和y分别表示X和Y中的任意变量,则变量X和Y之间的互信息熵可表示为:

式中:p(x)和p(y)分别为x和y的概率密度函数(probability density function,PDF)。

在绝大多数情况下,p(x)、p(y)与p(x,y)都难以精确获取,故需要对变量取值进行区间划分使其离散化,即使连续变量的取值数量为有限个,则互信息熵计算式可转换为:

对于离散变量,互信息可通过式(2)直接计算,而当变量X和Y中有一个取值连续时,首先需要获得该变量的概率密度以及联合PDF。对此问题通常有2 种处理方法:①将连续变量分箱处理,将变量取值划分为有限个区间,分别统计变量落入各个区间的概率,该方法结构简单、计算量小,但是区间划分难以界定,大多数采用等距划分;②通过概率密度估计或者窗函数[19-21]估算变量之间的联合PDF,但是这一过程中核函数带宽通常难以选取,从而导致结果往往与实际有较大偏差。对此,本文提出一种基于DKDE 的计算方法,首先通过DKDE 分别估计出单个变量的概率密度分布,然后从PDF 中提取波峰作为变量的典型模式,以波谷作为取值区间边界将变量离散化,从而通过式(2)计算气象参数与光伏出力的互信息。

给定一维随机变量X的N个采样样本x1,x2,…,xi,…,xN,X的高斯核密度估计定义为:

式中:φ(⋅)为高斯核函数,其定义如式(4)所示;t为核函数带宽的平方。

文献[22]指出,核函数也可以表示为如式(5)所示的线性扩散偏微分方程的解:

其中,a(⋅)和p(⋅)均为在定义域内二次可导的正值函数,且g(x;t)需满足如下初始条件。

式中:δ(⋅)为Dirac 函数。

当a(⋅)和p(⋅)均取值为常数1 时,即得到扩散偏微分方程的一个特例,即

在偏微分方程框架下,式(3)即为式(7)在初始条件(式(6))下的唯一解。若考虑x的取值范围为有界,假定其定义域限制为[0,1],则对式(7)的求解还需要添加Neumann 边界条件,即

求解后得到的扩散高斯核密度估计仍为核函数累加的形式,即

扩散高斯核密度估计过程如下。

DKDE 能够自适应地根据采样样本自动计算最优带宽t*,避免了人为随机选取的不确定性,且文献[22-24]的研究表明,DKDE 能够准确拟合变量的实际概率分布。图2 以温度这一气象参数为例,展示了其概率分布的核密度估计与区间划分情况。通过DKDE 计算得到的概率分布为近似正态的多峰分布。当带宽t*选择过大时,容易忽略局部信息而近似为正态分布;而当t*选择过小时,则会导致采样的偶然性与随机性被放大。

图2 2019 年1 月美国本德市温度概率分布与区间划分情况Fig.2 Probability distribution and interval division oftemperature in Bend,US,in January 2019

离散互信息用于反映变量处于不同模式的关联性,其值取决于变量离散化的方式。考虑到典型模式下的变量取值通常具有统一集中的分布规律,反映在概率密度分布图像上便是连续区间内呈现出概率峰,而在模式边缘处取值的概率相对较低。因此,本文的区间划分方法上充分考虑了特征的概率分布情况,即以概率峰作为变量的典型模式,以波谷作为区间边界。相比之下,传统的等距划分只是为了方便互信息计算所采取的简单离散化,不能体现这一规律性。

3 基于改进mRMR 算法的特征筛选

特征选择是光伏发电预测数据处理与模型构建的重要步骤,维度过高、冗余过多的特征空间容易导致气象信息与输出功率的映射规律难以挖掘,增加模型的训练难度与计算复杂度。从信息角度出发,特征选择的目的在于选择包含输出变量尽可能多的信息且维数最少的特征子集(X1,X2,⋅⋅⋅,Xn),即同时满足maxI(X1,X2,⋅⋅⋅,Xn;Y)与minn,其中多变量的互信息可通过式(12)计算[19]。

式中:Sn为n个特征组成的特征集合。

由于采样数量限制以及高维矩阵求逆计算过于复杂,联合PDF(p(x1,x2,⋅⋅⋅,xn))无法精确获取,因此直接计算多变量间的互信息难以实现,对此mRMR 算法将特征筛选近似等效为如下优化问题。

式(13)中,第1 项代表所选气象特征集Sn与光伏输出Y的相关性,第2 项代表气象特征之间的信息冗余度。通常mRMR 采用增量搜索算法[19],每次挑选当前的最优特征加入候选特征子集,即新增特征Xq满足:

式中:SSh−1为全体特征集S中剔除已选特征集Sh−1后剩余的待筛选特征集合。

mRMR 特征选择过程如下。

1)给定一个足够大的整数n,根据式(14)逐次选择特征生成n个序列特征集S1⊂S2⊂…⊂Sn−1⊂Sn。

2)根据n个特征集分别训练模型进行预测,得到预测误差序列E={e1,e2,⋅⋅⋅,en},选择相邻l个均值、方差均较小的误差组成误差集Ω。

3)在Ω中搜索最小值,其对应的特征集即为最优特征集。

尽管mRMR 算法已将互信息计算大大简化,但在选择特征时需要进行多次尝试且不断训练模型,增加了其计算复杂程度。而且,由于增量搜索过程中始终固定某一气象参数作为初始特征,可能潜在地导致后续特征选择过于局限,因此本文对mRMR算法作出以下改进。

1)对于初始的特征空间S,分别以每一个特征作为初始特征进行增量搜索,构建m个特征子集S1,S2,⋅⋅⋅,Sm。

2)增量搜索过程在新特征无法提供新的信息时停止,即式(14)取值非正时停止搜索。

3)以特征集构建过程中的总互信息增量作为特征集评价标准,归一化后经softmax 函数处理作为最终得分,最后保留得分高于平均值的v个特征集并重新标记为S1,S2,…,Sv,对应的得分为V1,V2,…,Vv。

4)分别对v个特征集进行模型训练,得到v个预测器P1,P2,⋅⋅⋅,Pv,对于任意给定的输入样本x=[x1,x2,⋅⋅⋅,xn],选择特征集对应的特征输入各个预测器中,得到预测输出P1(x),P2(x),…,Pv(x),模型的最终预测结果由预测器得分加权得到,即

4 基于XGBoost 算法的光伏预测模型

XGBoost 算法[25-26]是一种Boosting 类的集成学习算法,通过多轮迭代训练多个弱分类器并将其组合得到最终的强分类器。XGBoost 算法一般采用分类与回归树(classification and regression tree,CART)作为基本模型,对于一个回归问题,可构建如式(16)所示的集成映射模型。

式中:x∈Rm为m维的样本输入;fr为第r棵回归树,其输出fr(x)等于样本x归入的叶节点得分。R棵级联树得分累加即得到最终的预测输出ŷR。

式中:xi和yi分别为第i个样本输入与输出;loss(⋅)为单个样本预测输出与实际输出的损失函数,通常选择为平方误差;TR为第R棵回归树所包含的叶节点数;ωs为第s个叶节点的得分;γ和λ为自定义权系数,一般在[0,1]区间内取值。

式(17)的第1 项表示预测与实际输出的误差,第2 项则用于限制树的复杂度,避免过拟合。将损失函数LR在函数空间泰勒展开并省略高次项可得:

式(18)将损失函数转换为叶节点得分的凸函数,为使回归树的损失达到最小,第s个叶节点的得分ωs应取为:

考虑到回归树的生成过程中,无法对其所有结构进行遍历,只能逐层进行根节点的二分裂,则分裂特征与分裂阈值应使得式(20)所示的目标函数达到最大。

式中:SL为二分裂后归属于左半枝的样本集合;SM为归属于右半枝的样本集;Sroot=SL∪SM。值得注意的是,特征与阈值可通过遍历的方式进行选取,且分裂后的叶节点得分仍可通过式(19)计算,分裂在回归树达到预设的最大深度(一般不超过12)时停止。XGBoost 算法模型示例见附录A 图A1。

5 算例分析

本文选取2018—2019 年美国俄勒冈州本德市的一座光伏发电站历史监测数据[27]为研究对象,时间间隔为1 min。考虑到不同季节的复杂气象情况,分别对各月进行单独建模。在模型构建过程中,采用2018 年全月以及2019 年对应月前3 个星期的日间数据进行特征提取与XGBoost 模型训练,并以2019 年当月最后1 个星期的日间实测数据作为测试集,根据数值天气预报(numerical weather prediction,NWP)数据预测光伏功率并与实测出力对比分析。考虑到光伏预测时气象数据需要由气象站或电站的气象工作人员预测给出,必然存在一定误差,故本文对当月最后1 个星期测试集的输入气象参数均叠加−10%~10%的随机扰动。为验证所提出的特征提取方法与基于XGBoost 算法的预测模型的有效性,对比研究了多种不同的特征处理方法与不同预测算法对预测精度的影响。

5.1 特征集筛选结果

光伏电站实测特征数据包括太阳天顶角(solar zenith angle,SZA)、太阳方位角(solar azimuthal angle,AZM)、地外辐射(extraterrestrial irradiance,ETR)、水平总辐射(global horizontal irradiance,GHI)、倾斜面总辐照度(global tilted irradiance,GTI)、风速、温度以及电池板温度共计8 维特征。由于光伏出力可能与时间存在潜在关联性,额外增加年、日、时、分4 维特征数据,构成总计12 维的特征空间。

以2018 年1 月为例,各特征变量与光伏功率分布的互信息计算结果如附录B 图B1 所示,主对角线为变量本身所包含的信息熵,其值越大表明变量分布的不确定性越大;其余元素为变量之间的相关性量度,对应网格颜色越深表示变量之间的可解释性越强。

在不同月份,由于气候差异,不同气象特征对光伏输出功率的影响可能不同,且改进的mRMR 特征选择过程需要并行构建多个特征子集,因此建模过程中各个特征的重要性存在较大差异。附录B 图B2 统计了各个月份、各气象参数的被选择频次数,其中日标签、ETR、GHI、GTI 以及电池板温度与光伏输出功率密切相关,广泛应用于各个模型中;时、分与SZA 在夏季与秋季应用广泛,对于预测具有重要作用,而在春、冬两季较少被选入特征子集中;月标签、AZM、风速以及温度与光伏功率的相关性较弱,只在个别月份有利于预测。

5.2 不同方法的预测精度对比分析

为验证所提出模型构建方法的有效性,本文对比分析了采用不同特征提取方法与预测算法时的光伏预测结果,特征方法包括本文提出的改进mRMR与DKDE 结合、传统mRMR、无特征处理以及Lasso特征选择方法,预测算法则包括XGBoost、深度神经网络(DNN)、SVR 以及最近邻回归(kNN)。光伏预测模型的预测精度可通过平均绝对百分比误差(MAPE)、平均绝对误差(MAE)与均方根误差(RMSE)3 个指标(eMAPE、eMAE、eRMSE)进行评价,各指标计算如式(21)—式(23)所示。

图3 展示了采用不同特征方法与预测算法组合时各月最后1 个星期预测结果的eMAPE分布。在采用XGBoost 算法进行预测时,本文所提出的改进mRMR 与DKDE 结合的特征方法在各月均有较好表现。在夏、秋两季,eMAPE一般在6%左右,相比于未经特征处理时下降约1.5%;而在春季与冬季等气象情况较为复杂的月份,eMAPE不超过16%;且本文所提出特征方法优势明显。在预测精度最低的2 月,改进mRMR 与DKDE 结合可使eMAPE从19.3%(未经特征处理)降低至15.2%,降幅达4.1%。图3同时也对比了改进mRMR 与DKDE 单独应用的场景,结果表明改进mRMR 与DKDE 的应用均对模型精度的提升有益,如在1 月仅应用改进mRMR 可使eMAPE从无特征处理时的13.5%降低至12.1%,在此基础上再引入DKDE 可使其进一步降低至9.8%。对比DNN、SVR 与kNN 等机器学习预测算法,基于XGBoost 算法的模型预测误差在大多数月份都显著低于其他对比模型的预测误差。除预测效果外,附录B 表B1 还展示了不同预测算法的超参数数量以及模型的平均训练时间。在相同的软硬件配置情况下,XGBoost 算法的训练时间相较于SVR 与DNN可缩短一个数量级。尽管kNN 无须进行参数训练,但在每次预测时却需要计算待预测日气象参数与训练集中所有样本的距离并排序,在训练集样本数量较多以及预测较为频繁时计算量十分巨大。故综上所述,XGBoost 算法在预测精度、超参数调整及训练速度方面均具有较为显著的优势。

图3 不同特征方法与预测模型对应的各月MAPEFig.3 Monthly MAPE corresponding to different feature methods and forecasting models

各个季度首月预测结果的MAE 与RMSE 值如附录B 表B2 所示,均为光伏出力归一化至[0,1]范围后的计算误差。与eMAPE分布情况类似,采用本文提出的DKDE 与改进mRMR 结合的特征提取方法以及XGBoost 算法所构建的光伏预测模型在所有对比模型中的eMAE与eRMSE均为最低。

5.3 DKDE 带宽选择对预测精度的影响分析

考虑到核函数带宽的选择直接影响到变量概率分布的估计结果,从而导致区间划分、互信息计算以及特征筛选结果不同,并最终影响光伏预测的精度。本节对不同带宽下的光伏预测结果进行验证分析,图4 以DKDE 得到的带宽t*作为基准,对比了带宽分别为100t*、0.01t*以及等距划分区间条件下的各月预测eMAPE;其中等距划分可视作核函数带宽取值为无穷大的情形,此时任意变量均为取值范围内的均匀分布。由图4 可以看出,DKDE 的带宽选择在大多数月份均优于其他情况,且在春、冬季等预测误差较大的月份优势更为显著。

图4 不同带宽估计对应的光伏预测精度Fig.4 Photovoltaic forecasting accuracy corresponding to different bandwidth estimation

5.4 单日光伏出力预测分析

在春冬等天气复杂多变的季节,光伏预测精度通常较低,而在夏秋等天气状况良好的季节,模型通常表现较好。为验证本文光伏预测模型在不同天气状况下的可靠性,在不同月份选取了2 类典型的天气状况进行测试。图5(a)展示了天气晴朗时(8 月24 日)的光伏预测情况,采用改进mRMR 与改进互信息计算构建的预测模型全日eMAPE为4.9%,相比于传统mRMR 与不作特征处理分别有0.3% 与0.5%的改善。对于多云天气,图5(b)展示了预测精度最低的2 月中的一天(2 月23 日)各模型的预测结果,采用全部特征所构建的模型单日预测eMAPE为22.2%,而通过本文的特征筛选方法,eMAPE降低至14.8%,本文所提出的方法在复杂多云天气的优势更为显著。

图5 典型日光伏出力预测曲线Fig.5 Photovoltaic power output forecasting curves on typical days

6 结语

本文重点研究了光伏出力预测中的特征选择问题,并在此基础上建立了适用于不同季节/月份与各类天气的光伏预测模型。针对特征相关性量度——互信息难以直接计算的问题,采用DKDE 计算各个特征的PDF,根据其在定义域内的实际分布情况划分取值区间并将连续互信息计算离散化。针对传统mRMR 特征算法需要大量尝试且初始特征选择唯一的缺陷,本文对增量搜索过程中的终止条件进行了改进,提出一种可筛选多特征集的改进mRMR 算法。最后,采用XGBoost 集成学习算法对短期光伏出力进行预测。光伏电站实际运行数据测试实验表明,在不同月份,本文所提出的特征筛选方法相比于其他方法均具有较大优势,预测精度得到显著提升。

在后续研究工作中,可进一步考虑对天气状况的精细化聚类划分,针对各种复杂天气类型分别建模,进一步提升各类天气条件下的光伏预测精度。

附录见本刊网络版(http://www.aeps-info.com/aeps/ch/index.aspx),扫英文摘要后二维码可以阅读网络全文。

猜你喜欢
互信息特征选择出力
Kmeans 应用与特征选择
风电场有功出力的EEMD特性分析
基于互信息的贝叶斯网络结构学习
要争做出力出彩的党员干部
联合互信息水下目标特征选择算法
基于特征选择聚类方法的稀疏TSK模糊系统
改进的互信息最小化非线性盲源分离算法
风电场群出力的汇聚效应分析
基于增量式互信息的图像快速匹配方法
基于特征选择和RRVPMCD的滚动轴承故障诊断方法