基于LightGBM改进的GBDT短期负荷预测研究

2018-09-15 04:31王华勇
自动化仪表 2018年9期
关键词:决策树直方图梯度

王华勇,杨 超,唐 华

(贵州大学电气工程学院,贵州 贵阳 550025)

0 引言

我国经济正处于高速发展阶段,负荷预测在电力系统规划以及电网可靠、经济运行过程中发挥着至关重要的作用。对于电网调度机构而言,负荷预测对于发(供)电计划的制定、电网的供需平衡以及电力市场的平稳运行具有十分重要的意义。因此,需要提高负荷预测的精度,进而提高电力设备的利用率、降低电网运行风险。由于科学技术的进步,相应的负荷预测理论与技术得到了飞速的发展,理论研究逐步深入[1-2]。

近年来,电力负荷预测理论以及方法不断出现。人工神经网络[3]、粒子群算法[4]、小波去噪和决策树[5]、支持向量机[6-7]、时间序列[8-9]、数据挖掘[10]、回归分析[11-12]、决策树和专家系统、模糊理论等方法,为负荷预测提供了理论基础。但是目前已有的一些方法仍存在较大的局限性。例如:神经网络的训练过程中,因学习不足导致的过拟合现象时有发生,且算法收敛速度较慢、较易陷入局部最优;时间序列法的电力负荷短期预测,对历史数据的准确性要求较高。随着时代的发展,对于负荷的需求越来越个性化,但是目前已有的预测算法在预测速度和预测精度上还无法满足要求。小数据的预测采用局部加权线性回归,速度快、误差小。但是当数据增多时,这种方法需要为每个测试点寻找近邻,会加剧运算量,造成单机运算时间成倍增加。因此,如何处理数据量大规模增加时,预测时间过长、预测精度不够的问题就显得尤为重要。

本文以贵州省某区县的数据为基础,将基于LightGBM的梯度提升决策树(gradient boosting decison tree,GBDT)算法模型运用到短期电力负荷预测的研究中。该方法首先需要对所采集到的基础数据进行筛选、分类和整理,然后整理相应的特征值,最后对预测数据进行验证。

1 基于LightGBM改进的GBDT

梯度提升决策树算法最早是由斯坦福大学教授Friedman于2001年提出的一种迭代决策树算法。该算法利用最速下降法,将损失函数的负梯度在当前模型的值作为残差的近似值,然后用残差近似值拟合出一个回归树。该算法的决策过程涉及众多决策树,将所有树运行得到的结论进行累加进而得到最终的结果。

GBDT算法进行训练模型时,不能使用类似于mini-batch的方法,而是需要对样本进行无数次的遍历。如果想要提高训练的速度,就必须提前把样本数据加载到内存中;但这样会造成可以输入的样本数据受限于内存的大小。如果想要训练更多的样本,就必须采用外存版本的决策树算法。然而在I/O数量众多的情况下,算法运行速度仍相对较慢。为了使GBDT能够更加高效地使用更多的样本,学者开始考虑引入分布式GBDT。但是相对于分布式GBDT,LightGBM更具优越性。

1.1 LightGBM简介

LightGBM是一个梯度提升框架,它采用了以学习算法为基础的决策树。该框架训练效率更快、使用内存更低、准确率更高。除此之外,它还支持并行学习,可以处理规模庞大的数据。

LightGBM是基于两个目标设计的:针对单个机器,力争在不牺牲数据处理速度的前提下,尽可能多地使用数据;多机并行时,最大限度地减少通信时间,降低其带来的损失,并在计算上实现线性加速。

LightGBM采用了histogram决策树算法,将样本中连续的浮点特征值离散化成K个整数,同时构造一个宽度为K的直方图。遍历时,将离散化后的值作为索引在直方图中累计统计量,然后根据直方图的离散值,遍历寻找最优的分割点。这样可以有效地降低内存消耗,同时达到降低时间复杂度的目的。

LightGBM采用了一种更为高效的叶子生长策略,即带深度限制的按叶子生长策略(Leaf-wise)。该策略在分裂前会遍历所有叶子,然后找到分裂增益最大的叶子进行分裂,并往复循环。在相同的分裂次数下,Leaf-wise能够得到更好的精度。同时,在Leaf-wise中添加了防止过拟合的最大深度限制。其生长策略如图1所示。图1中:白点表示分裂增益最大的叶子;黑点表示分裂增益不是最大的叶子。

图1 Leaf-wise叶子生长策略图

LightGBM的另一个优化是histogram作差加速。一般情况下,构造一个叶子的直方图,而且父亲节点和兄弟节点直方图的宽度都为K,因此作差过程中仅需要计算K次,从而在运行速度上得到了很大的提升。

除此之外,LightGBM直接支持类别特征,不需要额外的0/1展开。

1.2 改进后的GBDT算法流程

(1)对所有的特征进行分桶归一化。

(2)计算初始梯度值gm(xi)。

(1)

式中:fm-1(x)设置为0或随机值。

(3)建立树,直到叶子数目限制或是所有叶子不能分割。

①计算直方图。

式中:hij=(cij,lij)。

②从直方图中获得分裂收益,选取最佳分裂特征G、分裂阈值I。

(2)

(3)

③建立根节点。

s=arg max(Gi) 1≤i≤m

(4)

Node=(s,GS,IS)

(5)

④根据最佳分裂特征分裂阈值,将样本切分。

(4)更新树的梯度值gm(xi)。

(5)重复步骤(3)和步骤(4),直到所有的树都建成。

1.3 特征分析

与传统的GBDT方法相比,本文方法具有分布式运行、更快的训练效率、更低的内存使用、更好的准确率等特点。

2 负荷预测试验及结果分析

2.1 预测误差分析

误差产生的原因有很多:①数学模型的简化和忽略各种因素之间的关系;②历史数据不够完整;③参数选取不当造成误差。

2.2 基础数据

本文所采集的数据为某省某县负荷数据以及气象数据,训练采用2015年7月1日至2015年8月18日的用电数据,共一千多组,并在此基础上预测2015年8月19日的电力负荷。在负荷预测中同时又考虑到温度、湿度、是否是工作日、上一小时最大负荷等特征值对电力负荷的影响。

训练所采用的用电数据类型为夏季典型日负荷,负荷曲线如图2所示。

图2 夏季典型日负荷曲线

由图2可以看出,负荷在5点左右达到全天最低值,然后负荷开始向上攀升到9点左右后,负荷缓慢上升到11点左右;随后开始下降到13点左右到达一个低谷,并在缓慢上升到21点左右达到峰值后下降。由此可见,该曲线在中午和晚上各出现一次峰值。

3 结果分析

通过对改进前后的GBDT算法进行训练,可以得到如图3所示的日负荷预测对比曲线。

图3 日负荷预测对比曲线

从图3可以看出:在3点到6点这一时间段,未改进的算法预测值略优于改进后的算法;在6点到9点这一时间段,两者的预测值精度都比较好;但是9点以后,可以很明显地看出改进算法预测精度的优势。此外,改进算法的运行时间为13.12 s,传统算法的运行时间为14.28 s。因此,相较于传统算法,改进算法的运行速度得到了提高。

4 结束语

在采用histogram决策树算法和带深度限制的按叶子生长策略的基础上,运用LightGBM梯度提升框架对GBDT算法进行了改进,将其应用于短期负荷预测。然后,对一千多组的数据进行了训练,得到了 GBDT算法以及基于LightGBM改进的GBDT算法的负荷预测值。对两者的负荷预测值的对比分析表明,相较于未改进的GBDT算法,改进后的算法在预测精度和运行速度上都有了相应的提高。训练结果表明,所提方法不仅可以提升计算效率,还可以提升负荷预测精度。除此之外,基于LightGBM的改进GBDT算法在数据挖掘领域也有良好的应用前景。

猜你喜欢
决策树直方图梯度
符合差分隐私的流数据统计直方图发布
一个带重启步的改进PRP型谱共轭梯度法
一个改进的WYL型三项共轭梯度法
随机加速梯度算法的回归学习收敛速度
基于FPGA的直方图均衡图像增强算法设计及实现
一个具梯度项的p-Laplace 方程弱解的存在性
用直方图控制画面影调
决策树和随机森林方法在管理决策中的应用
中考频数分布直方图题型展示
基于决策树的出租车乘客出行目的识别