基于LightGBM及LSTM融合的科技园区短期负荷预测
2022-01-04昌玲邓国安
昌玲,邓国安
(湖南大唐先一科技有限公司,湖南 长沙 410000)
0 引言
电力负荷预测是指以外界因素变化为基础,通过对历史数据的处理和分析,利用数学手段建立特定的模型来预测未来电力负荷的需求情况[1]。电力负荷预测在保证电力系统规划和可靠、经济性运行方面具有十分重要的意义。尤其在售电侧市场化的环境下,逐渐开展了大用户或园区的短期负荷预测理论及方法的研究。
随着科技园区的迅速建设,园区的电力需求也在不断的增长,电网对园区负荷的分配也不断在改变。尤其是对于新建园区,负荷缺失、异常等问题使电网对园区的负荷分配、园区需量上报和负荷预测存在干扰,针对这些问题,对已有相关电力数据进行分析,通过调研园区用户总体情况,结合用电政策、天气数据和历史负荷数据对异常数据进行处理,在数据量较少的情况下进行负荷预测。
目前为止常见的负荷预测方法主要包括基于时间序列[2]、支持向量机[3-5]、神经网络[6]、机器学习[7-8]等相关的负荷预测方法,这些方法为负荷预测提供了理论基础,但是目前已有的方法存在局限性。如时间序列方法的自回归滑动平均模型(ARMA),仅能对少量影响负荷的因素以及样本数据进行处理,且要求历史负荷序列平稳性较高。支持向量机算法能够解决负荷存在非线性、收敛于局部最优的问题,但是若数据样本太多会出现计算速度慢且预测精度低等问题。神经网络具有强大的非线性映射能力,但是存在学习速度慢,容易陷入局部最优的缺陷。XGBoost是一种基于决策树的机器学习算法,采用预排序法选择最优分割点,数据量大时会比较耗时,影响训练速度。
科技园区的用电负荷主要为办公设备负荷,空调负荷、照明、电梯等其他负荷,考虑空调负荷为科技园区受天气影响变化最大的负荷,其次是办公设备负荷受到使用人数的影响,有明显的工作日及时间属性。本文根据提取的某科技园区负荷数据,结合园区调研信息数据及异常信息进行数据预处理,增加时间相关特征量,采用K折交叉验证训练方法训练第一层特征,能避免因数据量较少导致的泛化能力差的问题,采用长短时间记忆网络(LSTM)与LightGBM算法融合,即考虑一周内的天气与负荷的时序相关性,也考虑天气数据与负荷的回归特性,经过算例分析,证明该融合算法在一定程度上能提高预测精度。
1 相关理论
1.1 LightGBM
LightGBM(Light Gradient Boosting Machine)是一款基于决策树算法的分布式梯度提升框架,是GBDT模型的变体,其基本原理与GBDT原理基本一致,通过将n颗弱回归树线性组合为强回归树,但是因为其采用了Histogram和Leaf-wise决策树优化算法,能够减小数据计算的内存占用,保证在不牺牲速度的前提下尽可能地利用更多的数据,能够实现并行计算学习,支持大规模数据处理,具有更高的准确度。
直方图算法的基本思想如图1所示,首先把连续的特征值离散化成k个整数,并且构造成一个宽度为k的直方图。在遍历数据的时候,根据离散化后的值作为索引在直方图中累积统计量,当完成一次数据遍历后,直方图已经累积了需要的统计量,所以就可以根据直方图的离散值,遍历寻找最优的分割点。
图1 直方图算法
LightGBM通过leaf-wise策略来生长树。如图2所示,每次分裂都是从当前所有叶子中,找到分裂增益最大的一个叶子,然后分裂,如此循环。因此同Level-wise相比,在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。但是,当样本量较小的时候,leaf-wise可能会造成过拟合。但是,LightGBM可以通过调节额外的参数max_depth来限制树的深度,从而避免过拟合。
图2 leaf-wise生长策略
1.2 LSTM
长短期记忆神经网络(LSTM,Long Short-Term Memory)是循环神经网络(RNN)的一种改进模型[9]。原始的RNN在训练过程中,若输入的时间序列过长或网络层数过多,容易出现梯度爆炸或者梯度消失等问题,反向传递的损失值会随层数的增加而越来越小,无法学习太长时间的序列特征。LSTM通过控制输入、遗忘和输出3个门能实现对记忆单元的读取和修改,通过门控状态来控制传输状态,记住需要长时间记忆的,忘记不重要的信息。最终反映到细胞状态ct和输出信号ht-1。LSTM的网络结构如图3所示。
图3 LSTM网络结构
图3为xt一个时间单元的网络循环结构,分别由细胞状态更新、遗忘门、输入门、输出门等组成。其中,xt为t时刻的输入,ct-1和ct分别为t-1和t时刻的状态记忆量,ht-1和ht分别是t-1和t时刻的输出量,ft、it、ot分别为遗忘门、输入门、输出门计算输出的变量,σ和tanh分别为sigmoid函数和tanh激活函数。
网络的计算公式如下:
式中,W f、W i、W g、W o分别为各控制门的相应权重矩阵,bf、bi、bg、bo分别为各控制门的相应偏置项。
2 基于LightGBM与LSTM模型融合算法
基于LigtGBM预测未来24 h负荷模型的建立,其输入输出的结构模式与LSTM结构不同,无法记忆时序性的特征,只需针对预测时刻的相关特征建立对每小时负荷值的回归预测。考虑数据可能存在不均匀性且避免过拟合,采用K折交叉验证的方法对数据进行交叉训练,如图4所示。首先按照K折的比例将原始数据集分为训练集和验证集,然后选取LigtGBM预测算法以交叉验证的方式对训练集进行训练,将训练完成后的预测模型对验证集和测试集进行预测。所得的测试集预测值即为各交叉验证模型预测值的平均值。
图4 K折交叉验证
基于LSTM预测未来24 h负荷模型的建立,首先确定模型的输入输出,考虑待预测日24 h负荷值与前一周的负荷及天气等特征有很大的相关性,由于LSTM网络独特的记忆结构,能够直接将时间序列作为单个特征,所以选取前一周每天24 h的负荷相关特征数据作为输入,预测输出未来24 h的负荷值。其次确定基于LSTM预测模型的网络架构,采用两层LSTM网络和一层全连接输出层结构。采用2个隐藏层可以提高对输入特征的提取深度,通过全连接层映射输出为负荷预测值。
多种较高准确率、不同类型的预测算法融合可以提高模型的性能[10-11],LSTM算法能考虑负荷的时序特性,LightGBM能充分考虑负荷与天气数据的相关性。两算法的融合在处理特征的相关性方面能形成互补。图5为模型融合的具体框架。
图5 模型融合框架
3 模型融合算法计算流程
模型融合算法流程如图6所示。
图6 算法流程
1)对获取的负荷数据、气象数据进行数据清洗,结合科技园区用能调研结果对数据进行异常值修正或删除。处理非数值特征量,将其进行编码至0—1,以便数值计算。增加特征量,针对数据集的时间构造属性,如节假日属性、周属性、小时属性等。对所有数据进行相关性分析,提取相关性较大的特征量。
2)将提取的特征量构建LightGBM预测模型。根据数据集总数进行训练集、验证集、测试集的划分,采用K折交叉验证方法训练LightGBM预测模型,对数据集分别训练,并输出预测结果及预测误差。
3)将上一层算法预测的训练集负荷数据加入特征量中,统一进行归一化处理,构建LSTM时序训练模型,得出预测结果及预测误差。
4)根据以上两层训练得出的预测结果和验证集预测误差,并验证预测误差加权平均得出最终的负荷预测值[10]。
4 短期负荷预测算例分析
空调负荷是科技园区受天气影响变化最大的负荷,采用某科技园区每小时的负荷数据,当地的天气数据,包括温度、露点、湿度、风向、风速、压力、天气类型等。按照模型融合算法流程进行数据预处理,构造时间相关属性,对所有数据进行相关性分析,提取相关性较大的特征量。构建训练集、验证集、测试集比例为8∶1∶1。程序计算采用python语言实现,第一、二层算法分别调用Lightgbm的机器学习库、Keras的深度学习库。LSTM网络的层数为2,每层的神经元个数均为256,优化算法为Adam算法,归一化按照sklearn库里面的MinMaxScaler处理。Lightgbm算法的叶子数为31,学习率为0.1,训练次数为12 000,目标函数是regression。误差考核标准参考平均绝对误差百分比εMAPE、均方根误差εRMSE、平均绝对误差εMAE。
式中,yi为测量值,为预测值,n为数据集个数。
4.1 模型训练及结果展示
按照模型融合算法计算流程,将处理后的数据集作为LightGBM预测模型的第一层数据进行训练,根据数据量大小,选择4折交叉验证,训练后测试集的εMAPE为6.32%,εMAE为44.86,εRMSE为69.32。将第一层训练得出的训练集预测结果加入第二层模型训练中,将两层模型预测的训练集数据通过融合算法训练出融合模型,最终得出测试集的预测值。图7为某天的24 h负荷预测值及其实际负荷值。
图7 24 h负荷预测值
4.2 不同算法预测结果比较
分别采用单独的LightGBM、XGBoost、LSTM算法进行负荷预测,测试的预测结果见表1。可见融合算法相比其他的预测算法能获得更高的预测精度。其次,单独的LightGBM算法比采用4折交叉验证算法的预测误差要大,证明交叉验证能一定程度上提高模型的泛化能力,从而提高预测精度。
表1 不同算法的预测结果
提取某天的24 h预测值如图8所示。由此可见,融合算法比其他算法能获得更高的预测精度,从而证明了方法的有效性。
图8 不同算法的预测值比较
5 结语
根据某科技园区的历史负荷数据及天气数据预测未来24 h的负荷值,采用基于LightGBM及LSTM算法融合的负荷预测方法,考虑负荷的历史时序特性,也考虑天气及时间因素对负荷的影响。增加时间相关特征量,映射时间对负荷值的影响,采用LightGBM训练第一层特征预测模型,4折交叉训练避免了因数据量较少而导致模型泛化能力差的问题,预测精度明显比直接训练要高。采用两种预测算法融合,在一定程度上能减小负荷的预测误差,提高了负荷预测的精度。