双层特征选择和CatBoost-Bagging集成的短期风电功率预测
2022-08-16康文豪徐天奇王阳光邓小亮
康文豪,徐天奇,王阳光,邓小亮,李 琰
(1.云南民族大学 云南省高校电力信息物理融合系统重点实验室,昆明 650504;2.国网湖南省电力有限公司,长沙 410004)
0 引言
风电的不确定性和波动性对于电力系统稳定性是一项巨大挑战[1]。而风电功率预测是解决该挑战的重要手段之一。因此,实现风电功率预测极为重要。
风电场数据的特征选择方法影响其预测精度。研究人员常采用主成分分析(principal component analysis,PCA)[2]、皮尔逊(Pearson)相关系数[3]等单一特征选择方法。单一特征选择方法只能从单一视角进行特征选择,容易遗漏重要特征,导致模型复杂度偏高或者偏低,最终影响模型的预测精度。目前,单一的短期风功率预测方法的研究已经比较成熟[4]。文献[5]建立了径向基神经网络的超短期风电功率预测方法,算例验证了该方法预测精度较高,具有较强的实用性。文献[6]建立了基于改进的集成经验稳态分解与基于遗传算法优化的极限学习机组合模型的短期风电功率预测方法,并验证了该模型的有效性。组合预测虽然明显优于单项模型,但大多数研究集中在优化算法方面[7-8]。与此同时,采用模型融合的方法可弱化单个模型的偏差影响,提高组合模型的泛化能力[9]。文献[10]对极限学习机和长短期记忆网络这2种模型的预测结果,采用加权方法进行处理,以预测风电功率,算例证明该方法可改善预测结果。文献[11]建立了基于BP(back propagation)神经网络和卷积神经网络(convolutional neural networks,CNN)融合的超短期母线负荷的预测模型,该方法融合了2种模型的优点,能够有效地提高负荷预测的精度。
为解决上述痛点,提出了基于双层特征选择和装袋算法(bootstrap aggregating,Bagging)集成分类梯度提升算法(categorical boosting,CatBoost)的短期风电功率预测方法,采用基于模拟退火(simulated annealing,SA)特征选择的第一层特征选择和基于特征相关性的第二层特征选择综合确定有效特征集,并利用Bagging融合多组CatBoost算法建立短期风电功率预测组合模型,通过重采样方法来降低预测功率和实际功率之间的方差,以增强模型泛化能力和预测准确度。同时应用算例检验了方法的有效性,具有一定的研究意义。
1 双层特征选择方法
1.1 基于SA特征选择的第一层特征选择
SA是一种经典的随机优化方法[12]。将SA算法应用于特征选择。选择CatBoost算法作为衡量特征子集表现的模型,同时选择均方误差(mean-square error,MSE)作为损失函数。该算法在求解最优解的过程中,引入了随机因素,以一定的概率用转移后的较差解替代当前解,从而跳出局部极值[13]。转移概率基于Metropolis准则,其公式如式(1)所示:
(1)
式中:MSEnew和MSEold分别为新特征子集计算出的损失和当前最优损失;Ti为当前温度。
具体步骤描述如下:
1)初始化SA算法参数。
2)从风电特征数据中随机生成初始特征子集。
3)在该特征子集上训练CatBoost模型,并计算群体中各个体的对应损失MSEnew。
4)当该损失MSEnew大于当前最优损失MSEold时,进行步骤5);否则接受当前特征子集,更新当前最优损失,降低当前温度Ti+1=Ti×α。其中:α为温度衰减系数。
5)当n大于转移概率Ti时,拒绝当前特征子集;否则,接受当前特征子集并更新当前最优损失。
6)当当前温度大于温度阈值时,重复步骤2)—5),否则输出当前最优损失,算法结束。
基于SA的特征选择流程如图1所示。
图1 基于SA的特征选择流程框图
1.2 基于特征相关性的第二层特征选择
上述第一层特征选择未返回各特征的特征重要性具体数值,仅能返回各特征是否成为第一层最优特征子集特征的二进制编码。因此,采用特征与风电功率之间的相关性对第一层最优特征子集特征进行第二层特征选择。
1.2.1距离相关系数
距离相关系数(distance correlation coefficient)很大程度上克服了传统Pearson相关系数只能用于衡量数据的线性关系的缺点,其可以用来计算数据的非线性相关性,而且它没有模型假设和参数设置,使该方法的普适性得到了显著提高[14]。计算公式具体如下:
(2)
其中:dCov(X,Y)为特征矩阵X与风电功率序列Y的距离协方差;dVar(X)和dVar(Y)为X与Y的距离方差。
1.2.2最大信息系数
互信息(mutual information,MI)是指一个随机变量中包含的关于另一个随机变量的信息量[15]。它用于衡量两个变量之间的关联程度,常用于特征选择[16]。X与Y的MI定义为:
(3)
式中:p(x,y)为联合概率密度函数;p(x)与p(y)为边缘密度函数。
MI算法在进行特征选择时会出现处理连续变量数据能力较差的问题。基于此,Reshef 等[17]在MI基础上提出最大信息系数(maximun information coefficient,MIC)。最大信息系数不仅克服了MI的上述缺点,而且具有更高的准确度。给定i、j,对X与Y构成的二维散点图进行i列j行网格化,并依据式(4)求出此网格下的最大信息系数值。计算公式如下:
(4)
式中:B为网格划分的上限值,通常情况下B=n0.6。MIC的取值范围为[0,1],该系数越大表示变量间相关性越强,反之,则相关性越弱。
2 CatBoost-Bagging模型分析
2.1 CatBoost
CatBoost算法是在梯度提升决策树(gradient boosting decision tree,GBDT)算法下的一种改进算法,其有效克服了GBDT算法过拟合的问题。
CatBoost算法以对称决策树作为基学习器。这种树是平衡的,不太容易过拟合。对称决策树在每一层都具有相同的分枝准则,每个叶节点的索引可以编码为一个长度与树深度相等的二进制向量。这样对称决策树就不必像普通决策树那样遍历所有节点。因此可以大大提高模型预测速度。
2.2 Bagging算法
Bagging算法是一种提高基学习器的并行集成学习方法。其主要思想为通过自助采样法(bootstrap sampling)随机产生多个训练子集,然后基于每个训练子集建立多个相互独立的基学习器,最后将这些基学习器进行集成,得到最终预测模型。
为了进一步提高风电功率预测精度,以CatBoost算法为基础,采用Bagging 集成方法建立短期风电功率预测模型。综上,CatBoost-Bagging算法流程如图2所示。
图2 CatBoost-Bagging算法流程框图
具体步骤如下:
1)对特征矩阵X与风电功率序列Y构建样本集D={X(i),Y(i)},i=1,2,…,n。
2)从样本集D中有放回随机采样T次得到样本子集D*={D1,D2,…,DT},根据子样本集D*训练得到子学习器H*={H1,H2,…,HT}。
3)将T个子学习器H*建模后产生的T个预测结果取平均,得出其最终预测结果。
3 双层特征选择和CatBoost-Bagging预测模型
为了充分挖掘风电场原始特征,筛选出对风电功率预测强影响度的特征,本节应用两层特征选择方法,第一层特征选择中使用SA特征选择基于CatBoost模型表现进行特征寻优,形成第一层最优特征集,而在其基础上,第二层特征选择通过距离相关系数和最大信息系数分析该子集里与风电功率强相关的特征,从而形成最终特征集;为了提高预测模型精度,以CatBoost算法为基学习器,引入Bagging集成学习算法,使CatBoost的性能得到最大化的发挥。最终,建立基于双层特征选择和CatBoost-Bagging的短期风电功率组合预测模型。预测模型流程如图3所示。
图3 双层特征选择和CatBoost-Bagging预测模型流程框图
具体步骤如下:
1)对原始风电特征进行第一层特征选择。采用SA为CatBoost算法随机搜索特征子集,并用均方误差作为损失函数,最终确定第一层特征集。
2)在第一层特征子集基础上,将距离相关系数和最大信息系数2种特征选择方法用于分析各特征对风电功率预测的相关度,得到最终特征集。
3)建立CatBoost-Bagging预测模型并对特征集进行训练和预测,得到某时刻的最终风电功率预测值。
4 算例分析
采用的数据来自新疆某风电场的实测数据,采样时间为2017年7月4日至2017年8月10日。采样时间间隔为15 min,共3 648个数据点,训练集使用前3 552个数据点,测试集为后96个数据点。
采用均方根误差(root mean square error,RMSE)、平均绝对误差(mean absolute error,MAE)及拟合优度系数R2来评价模型误差[18],定义如下:
(5)
(6)
(7)
4.1 双层特征选择分析
所用数据原始特征编号如表1所示。
表1 新疆某风电场实测数据原始特征
对上述14个原始特征进行第一层特征选择,采用SA算法确定第一层最佳特征集,从而去除冗余特征。SA算法的实验参数为:初始温度为0.2,最低温度为0.005,温度衰减系数α=0.9。第一层最佳特征集如表2所示。
表2 第一层最佳特征集
由表2可知,第一层最佳特征集仅在原始特征的基础上去除了编号8和10的冗余特征,且其没有返回各特征的贡献度。这表明仅是第一层的基于SA算法的特征选择是存在局限性的,需要进行第二层特征选择,从而实现第一层和第二层特征选择方法之间的互补。
在第二层特征选择计算距离相关系数和最大信息系数过程中,将风电特征矩阵和风电功率矩阵代入式(2)—(4)即可计算出两个矩阵的距离相关系数和最大信息系数。该结果如图4和图5所示。其中距离相关系数的阀值取0.8,而最大信息系数取0.7。
图4 距离相关系数结果
图5 最大信息系数结果
从图4和图5可知,在距离相关系数和最大信息系数中,编号1~5特征的相关系数最大,说明风向和风速这两个特征与风电功率的关联度最强,而温度、气压和湿度影响程度有限。因此,通过对距离相关系数和最大信息系数分别得到的特征结果取交集得到最终特征集,即选取编号1~5的特征:10 m处风速、30 m处风速、50 m处风速、70 m处风速和0 m处风向作为风电功率预测的最优特征集。同时,2种方法筛选的结果一致,即从不同角度验证了最终特征集的合理性和有效性。
4.2 CatBoost模型功率预测的横向对比实验
为了对比CatBoost模型的预测精度,本节将使用极端随机树(extremely randomized trees,ET)、支持向量回归(support vector regression,SVR)和GBDT算法做提前一天风电功率预测的横向对比实验。得到各模型功率预测结果和误差评价指标值,如图6和表3所示。
图6 横向对比模型功率预测结果
从表3中可知,各模型取得较好的预测精度,说明特征选择达到了选择出有效特征,提高预测精度的目的。CatBoost算法预测误差RMSE和MAE最小,分别为1.838 1和1.346 2。从拟合效果来看,CatBoost模型的拟合程度最高。这验证了对Bagging模型的基学习器设为CatBoost模型的合理性和有效性。
表3 横向对比模型的误差评价指标值
4.3 基于CatBoost-Bagging模型的短期风电功率预测实验
为进一步验证所提模型的有效性,搭建了CatBoost-Bagging模型、ET-Bagging模型、SVR-Bagging模型和GBDT-Bagging模型进行对比,分别对它们做提前一天预测。不同模型的功率预测结果和误差评价指标如图7和表4所示。
图7 不同模型的功率预测结果
表4 不同模型的误差评价指标值
由表4可知,相较于单一预测模型,经过Bagging集成学习的预测模型预测精度都有明显提升。这表明通过对单一预测模型进行Bagging集成学习,可以有效提升模型预测性能和泛化能力。而在Bagging集成学习模型中,CatBoost-Bagging模型不仅预测误差最低而且拟合效果也最贴合实际功率曲线。在运行时间方面,可以看出,其他Bagging融合模型的运行时间在12~16 s,而CatBoost-Bagging模型运行时间低于10 s。显然所提方法的运算时间低于其他Bagging融合模型,证明了CatBoost-Bagging模型具有更低的算法复杂度和更高的运算效率。
4.4 基于特征集有效性分析
为验证所选特征集的有效性,本节将采用CatBoost-Bagging 模型对原始特征集、第一层特征集和两个对比特征集作对比实验。不同特征集功率预测结果和误差评价指标值如图8和表5所示,各特征集特征编号如表6所示。
图8 不同特征集的功率预测结果
表5 不同模型的误差评价指标值
表6 不同特征集特征编号
由表5和表6可知,对比特征集一比本文特征集多了相关系数比较高的编号7和9这2个特征,但是误差指标RMSE和MAE分别升高了10.58%和24.76%,而拟合程度则下降了3.80%。这表明这2个特征为冗余特征。而对比特征集二只有编号4和5特征,预测值拟合程度却已经达到0.813 3,这说明编号4和5特征为主要特征。但是,该特征集预测精度仍然不如本文特征集,表明编号1~3对风电功率预测具有很大贡献度,属于有效特征。尽管第一层特征集比原始特征集预测效果好一些,但是两者都比对比特征集一结果差,即编号6~13特征皆为冗余特征。这表明仅仅第一层特征选择是不能达到充分挖掘特征的目的,需要与第二层特征选择进行配合。综上,在各特征集中本文特征集预测精度最高。这验证了该特征集挖掘到有效特征的目的,同时通过双层特征选择方法利用两者之间互补性去挖掘原始特征数据,从而综合确定最终特征集,这使得本文特征选择方法更具适用性。
5 结论
1)针对风电场数据有效特征不明显的特点,采用双层特征选择方法,利用方法之间的互补性充分挖掘数据的特征,确定出对风电功率强关联度的输入特征集,提高了预测精度。
2)相比于ET、SVR和GBDT 3种模型,CatBoost模型具有更高的预测精度和稳定性。
3)针对当前单一模型短期风电功率预测精度有限的问题,将Bagging算法对CatBoost模型集成来提高模型表现,并通过实例仿真验证了CatBoost-Bagging集成模型拥有更好的预测效果。