APP下载

基于极端梯度提升的跨地区多种类电力需求预测

2022-04-07张苏宁景栋盛

计算机与现代化 2022年3期
关键词:误差率电能预测

张苏宁,王 芳,朱 燕,景栋盛

(国网江苏省电力有限公司苏州供电分公司,江苏 苏州 215004)

0 引 言

电力需求预测(负荷预测)是电力系统所面临且需要解决的重要工作之一[1]。负荷预测,其主要目的是根据目标对象的历史数据来建立数学模型,从而预测其未来发展变化规律[2]。因此,为了提高预测的准确性,不仅数据要全面且合理,还要选择合适的算法来对数据进行建模[3]。这样才能保证整个预测系统的可靠性。

目前,大多数用电需求预测算法只针对某一单独地区,且将所有形式电能归结到一起来做整体预测[4-7]。但是,各个地区受其地理、经济等因素影响,主要的电能来源形式往往大不相同。如果只片面地考虑各个地区电能消费总量,却不按各地区实际情况来考虑各种形式电能如何分配,往往会造成电能资源分配不合理,从而导致资源浪费,降低电力系统的社会效益和经济效益[8-9]。因此,如果能对全国所有地区的各种形式能源消费情况进行分析,从而进行合理调度和分配,将提高电力行业的经济效益。

针对此,本文立足整体,对多个地区不同形式电力需求进行预测,不仅可以保证各地区电力供给稳定,还可以对全国产生的不同形式电力资源按地区进行合理分配,本文设计一种极端梯度提升(Extreme Gradient Boosting, XGBoost)算法,改进提升树方法,有效防止过拟合,并且通过采用分布式并行的方式来提高训练效率。与深度学习相比,本文方法对训练样本总量和特征数据类型要求低,训练时间较短,因此适用范围更广。本文以美国50个州从2001年1月—2010年4月之间所有月份对不同形式电能消费数据进行测试[10-11],实验表明,本文方法能够在可接受范围误差内对各地区不同形式的电力需求进行有效的预测。

1 相关工作

为了进行用电预测,学者们提出了各种各样的预测方法。常用的用电预测方法主要有如下几种:支持向量回归(Support Vector Regression, SVR)[12-13]、差分自回归移动平均(Auto Regressive Integrated Moving Average model, ARIMA)[14]、随机森林(Random Forest, RF)[15]以及深度学习中的神经网络(Neural Network, NN)[16]等方法。

1.1 支持向量回归

支持向量回归是在对样本数据做拟合时,使用支持向量概念和拉格朗日乘数法对数据进行回归分析。

SVR定义了一个误差函数error function,在求出回归函数和实际训练点之间的函数距离后,对于误差范围内的点都认为是模型上的点,而只有那些在误差范围外,边界上的点才是确定模型的支持向量。但是该方法在数据量很大时,时间空间消耗都十分巨大。此外,不同于基于树的模型,SVM和SVR需要对数据和参数进行十分谨慎的预处理,才能达到较好的效果。

1.2 差分自回归移动平均

差分自回归移动平均模型是一种基于时间序列预测方法。一个ARIMA可由(p,d,q)三元组表示,具体表示如下:

自回归模型(AR)通过分析当前值与自身历史值之间存在的关系,来对序列自身进行预测[17]。但是,自回归模型能够进行可靠预测的前提必须是相对稳定并且具有一定程度的相关性。自回归模型需要确定一个阶数p,其p阶自回归的公式可定义为:

(1)

其中,yt是当前值,μ是常数项,p是阶数,γi是自相关系数,yt-i是过去时间的值,ηt为误差。

d表示为了使序列能够变得平稳而对其所做的差分次数。

移动平均模型(MA)[18]则将关注目标转到自回归模型中误差项上。它通过将自回归模型中误差项进行累加,通过线性组合过去各个时期的误差或者是干扰来对当前时间进行预测。其q阶自回归过程的公式定义为:

(2)

其中,yt是当前值,μ是常数项,q是阶数,θi是自相关系数,ηt-i是过去自回归误差,ηt为当前误差。

在对序列进行差分平稳化后,将AR和MA模型相结合即可得到ARIMA模型:

(3)

ARIMA模型的缺点是对数据平稳性要求较高,而且在捕捉非线性关系时,往往效果很差。

1.3 随机森林

随机森林是一个基于多个决策树的分类器。它通过Bagging和决策树组合起来,即由众多独立的决策树(一般采用CART树)[19]组成一个森林。输入样本后,将在每棵树中都对输入样本进行分类,然后根据每棵树的分类结果确定最终结果。在训练过程中,每棵树都使用Booststrap Sample方法将训练集中随机有放回地抽取的N个样本替换为自己的训练集。换而言之,用于每棵树的训练集都不相同,并且一个样本可以重复用于同一棵树的训练集。随机有放回地采样是为了让每棵树的训练集都不同,那么每棵树最终训练出的结果也就不一定相同,从而确保随机性,使得Bagging方法变得有意义。随机森林能够处理高维度多特征的分类问题,且不用做特征选择。有研究人员采用随机森林法来对用电预测问题进行建模[7],但实际上面对用电预测这类非分类问题时,容易出现过拟合,且预测结果往往误差较大。

1.4 神经网络

随着深度学习的发展,越来越多人通过建立神经网络来解决这类预测问题[20-25]。

多层感知机(Muti-Layer Perception)是神经网络中最简单的一种,它由多层线性网络组成,能够处理非线性可分离的问题。

卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(Deep Learning)的代表算法之一,在图像分类领域有广泛的应用,同时,对于时间序列预测也有优秀的效果[26]。

长短期记忆网络(Long Short-Term Memory,LSTM)[8]是对循环神经网络(Recurrent Neural Network, RNN)的改进。RNN被设计出来的目的是为了解决长期依赖问题,它的特点是在面对序列数据时,能利用先前的信息来推测当前的信息。LSTM在RNN网络中加入了门控制,从而有效解决了RNN会出现的梯度消失和梯度爆炸问题。

LSTM在面对有明显时间序列的数据时可以进行很好地预测。有人采用LSTM或者LSTM的变体来对某一地区用电情况进行预测[8]。但是,神经网络方法不仅要求数据量巨大,相应的训练时间也较长。此外,本文实验所采集的数据具有多个时间序列,如:同一年的同一个月份分为不同地区,每个地区又有不同形式能源消费量。另外,LSTM在处理多时间序列的数据时效果一般,难以进行训练。

2 XGBoost算法原理

本文所采取的是XGBoost算法。该方法是在提升树方法的基础上进行改进,可以有效防止过拟合。此外,算法同时支持分布式并行,提高训练效率。与深度学习相比,该方法对训练样本总量和特征数据类型要求不严苛,训练时间较短,因此适用范围更广。

2.1 目标函数

XGBoost的目标函数由2个部分组成。一部分是损失函数,另一部分是正则项。由于在训练时会同时训练多棵树,那么对于第t棵树的第i个样本,模型的预测值表示为:

(4)

进一步,可以得到原始目标函数:

(5)

由式(1)的思想,对式(2)的损失函数进行简化,并且由于XGBoost是前向迭代,因此前t-1棵树的参数是可以看成常数的,据此对正则化项进行拆分:

(6)

其中,C为常数。

2.2 泰勒公式二阶展开

使用泰勒公式进行近似展开对目标函数进行化简,二阶泰勒公式展开如下:

(7)

对原损失函数根据式(4)进行泰勒公式二阶展开,可得到:

(8)

其中,gi对应的是损失函数一阶导数,hi为二阶导数。进而得到目标函数表达式为:

(9)

2.3 树的参数化

树的复杂度定义也主要由2个部分组成:每个树的叶子结点的个数和叶子结点的权重值。由此得出树的复杂度为:

(10)

其中,T为当前这棵树叶子结点的个数,是叶子结点值的L2范数。

将式(9)代入目标函数并对树进行参数化,得到:

(11)

其中,Ij={i|q(xi)=j}。

将目标函数对ωj求导,即可求出叶子结点的权重参数ωj:

(12)

(13)

2.4 特征分裂并行寻找

3 数据处理及模型建立

3.1 数据描述

本文实验采用美国共50个州从2001年1月—2010年4月之间所有月份对不同形式电能的消费数据。但相关数据集存在数据缺失的情况,有部分数据是0或者是NA。因为数据缺失会对模型训练产生较大影响,因此本文使用同种类数据的均值来代替缺失部分的数据,从而完成数据平滑处理,便于模型训练。在对数据进行处理、清洗之后,最终获取了31136个有效数据集。之后按8:2的比例将数据划分为训练集和测试集。

由于本文目标是为了能够实现对多个地区不同形式电能合理分配、避免资源浪费,故本文选取[年,月,地区,能源形式]作为主要输入特征来对能源消费量进行预测。特征描述如下:

1)地区:美国50个州的首字母缩写。

2)能源形式:电力的供应形式或生产商类型。即该种类电力是由何种形式生产而来。选取该特征主要原因是:各个地区受各种因素影响,其电能的来源和消费形式也大不相同。故针对这个点来进行预测,以便于电能的合理分配。

3.2 特征标准化

由于采集的数据为离散数据,难以进行训练,因此需要对[地区,能源形式]这2个离散特征进行标准化处理。本文实验采用sklearn中的LabelEncoder来给数据的特征进行编码。LabelEncoder可将离散型的数据通过0到n-1之间的数对其编码从而转换为可训练数据,这里n是某个特征的所有不同取值的个数。

3.3 预测模型建立

基于XBGoost的跨地区多种类电力需求预测的主要步骤包括:采集各地区以往的能源消费详情,并进行数据补缺、平滑化处理;对采集数据根据影响因素提取特征并对特征进行编码;建立XGBosst模型,输入训练数据,通过GridSearchCV方法自动化调整模型参数。训练并保存模型后,即可输入数据来获得预测结果。具体流程如图1所示。

图1 跨地区不同形式电能需求预测流程

3.4 算法

基于XBGoost的跨地区多种类电力需求预测算法如算法1所示。

算法1 基于XGBoost的跨地区多种类电力需求预测算法

Input:数据集I,特征维度d

Output:预测模型

1.预处理数据集

2.编码特征

3.gain←0

5.fork=1 tomdo

6.GL←0,HL←0

7.forjin sorted(I,byXjk) do

8.GL←GL+gj,HL←HL+hj

9.GR←G-GL,HR←H-HL

11.end

12.Return预测模型

4 实验分析

4.1 模型参数选择

经过大量实验,发现XGBoost模型参数对实验结果影响较大。下面主要选取几个重要参数来进行调整,以使模型达到最优效果。gamma表示节点分裂时损失函数下降幅度,用于决定算法的保守程度;max_depth参数可有效用于避免过拟合;lambda参数即为权重的L2正则化项,也可用于减少过拟合;subsample这个参数则是用于控制每棵树在训练时对数据进行随机采样的比例,值越小,则算法越为保守;min_child_weight决定最小叶子节点样本权重和,可避免模型学习到局部特殊样本;learning_rate即学习率,表示模型在训练过程中的更新速率;seed为随机种子,可用于复现实验结果。

在对这些参数进行搜索之后,得到一个最佳模型,该模型参数如表1所示。

表1 XGBoost模型参数

4.2 模型预测结果分析

模型训练完毕后,使用测试集数据对模型预测效果进行分析。在随机采样30个采样点的预测结果后,XGBoost真实值与预测值曲线如图2所示。

图2 XGBoost预测曲线

由图2可知,模型可以对真实值进行准确预测。通过对实验数据进行分析,计算出测试集共6227个样本的平均误差率为17%,误差率分布如表2所示。

表2 XGBoost算法预测误差率及其分布

在深度神经网中,有些模型(如LSTM)不适合预测多时间序列问题,而有些模型(如MLP和CNN)则效果良好。本文采用处理单时间序列效果较好的方法作为对比,以此来展现面对多时间序列数据时的本文方法处理的效果。对比试验采用SVR方法、随机森林方法、MLP方法和CNN方法,误差率分布分别如表3~表6所示。

表3 SVR方法预测误差率及其分布

表4 随机森林方法预测误差率及其分布

表5 MLP方法预测误差率及其分布

表6 CNN方法预测误差率及其分布

对比发现,XGBoost方法预测误差率在5%以下,即预测十分准确的样本数量远多于SVR方法和随机森林预测方法。同时,误差率在10%以上的,即预测结果误差较大的样本数量远远少于SVR方法、随机森林、MLP方法和CNN方法。

5 结束语

通过良好的数据管理和有效的数据挖掘,实施相关大数据策略,不仅可以保证电力系统的稳定运行,而且对于电力营销的质量和提高企业竞争力有着重要的意义。本文不同于目前多数只针对某一地区整体用电数据来进行负荷预测的方法,提出了一种能对各个地区不同形式能源利用情况进行分析预测的算法模型。本模型采用XGBoost算法来对多个地区各个月份不同形式电能的消费量进行预测。这种基于整体的预测方法可以更好地实现对全国电能资源的调度分配,从而减少能源因分布不当所造成的传输损耗。在与其他几种电力预测方法相比后,发现本文模型对各个样本预测效果更好,预测结果与实际数据相对误差较小。此外,由于XGBoost算法的并行搜索机制,使得训练过程十分快速,具有极高的灵活性。国内电力公司若通过有效的数据挖掘或对数据进行良好管理,再辅以相关的智能算法模型,不仅可以保证电力系统的稳定运行,减少资源浪费,而且对于电力营销的质量和提高企业竞争力有着重要的意义。本文针对数据缺失仅采用简单的处理方法,未来可以针对缺失数据的补全进一步开展研究工作。

猜你喜欢

误差率电能预测
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
苹果皮可以产生电能
生化检验全程中质量控制管理方式及应用意义
电能的生产和运输
降低评吸人员单料烟感官评分误差率探讨
海风吹来的电能
澎湃电能 助力“四大攻坚”
无线传感器网络定位算法在环境监测中的应用研究