问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

XGBoost+LightGBM+LSTM:一次机器学习比赛中的高分模型方案

创作时间:
作者:
@小白创作中心

XGBoost+LightGBM+LSTM:一次机器学习比赛中的高分模型方案

引用
CSDN
1.
https://blog.csdn.net/keypig_zz/article/details/82819558

在2018年国家电投大数据及智能应用创新创业大赛的光伏发电量预测赛题中,我们团队通过融合XGBoost、LightGBM和LSTM模型,成功获得了初赛A榜和B榜的优异成绩。本文将详细介绍我们在比赛中的核心思路、关键技术和实践经验,希望能为正在学习机器学习和数据科学的同学们提供一些有价值的参考和启发。

数据探索与数据预处理

赛题回顾

赛题背景

太阳能作为世界第一大清洁能源,具有可再生和无污染的特点。然而,太阳能发电也面临着波动性和间歇性的挑战,光伏发电功率受多种因素影响,具有很强的随机性。因此,准确预测光伏发电功率对于解决大规模并网困境、推动光伏发电发展具有重要意义。

赛题任务

本赛题要求在分析光伏发电原理的基础上,通过实时监测的光伏板运行状态参数和气象参数建立预测模型,预估光伏电站瞬时发电量,并通过实际发电量数据进行对比分析,验证模型的实际应用价值。

数据探索性分析与异常值处理

光伏电站的发电量呈现周期性特征,周期在180到200之间,周期大小与时令有关。根据赛题信息,训练数据集的时间跨度为三个月,可以推断一个周期代表一天。由于北半球的光照周期会随季节变化而变化,因此每天的光照强度和发电量形状也会有所不同。

在训练集和测试集合并后,光照强度等多个特征都是随着 ID而大致上连续变化,并且ID本身在合并后本身就连续,所以有理由相信,测试集和训练集在同一个数据集里面随机抽取形成两个集合。这张图可以看出,光照强度会随着ID的增大,峰值会随着增大,由于题目提示了这些数据是2月14后的数据,所以可以推测,赛题中光伏电站在北半球。

通过数据可视化,我们发现光照强度/40的曲线基本和发电量的曲线一致,如图6所示。平均功率除以480的曲线基本和发电量的曲线一致,如图7。电流和发电量也基本一直,如图8所示。

板温和现场温度与发电量的相关性虽然没强特征那么高,但趋势也是大致一样,电压基本稳定在一个范围没有呈现周期性,风向也是稳定在一个值附近,说明这三个月吹的是定向风,而风速分布没有什么规律。转换效率和发电量基本上是负相关,而发电量和光照强度相关性极高,那么可以知道,当光照强度越强,转换效率越低,查阅文献得知这是因为光照提高温度,而温度在一定范围外,升高会降低效率。图8画出了以上三个特征与发电量的对比情况。

相关性分析

首先我们观察了各特征与发电量的皮尔森相关系数,结果记录在表1中,这可以在一定程度上判断特征对于预测的作用。

通过数据可视化,我们发现光照强度/40的曲线基本和发电量的曲线一致,如图6所示。平均功率除以480的曲线基本和发电量的曲线一致,如图7。电流和发电量也基本一直,如图8所示。

板温和现场温度与发电量的相关性虽然没强特征那么高,但趋势也是大致一样,电压基本稳定在一个范围没有呈现周期性,风向也是稳定在一个值附近,说明这三个月吹的是定向风,而风速分布没有什么规律。转换效率和发电量基本上是负相关,而发电量和光照强度相关性极高,那么可以知道,当光照强度越强,转换效率越低,查阅文献得知这是因为光照提高温度,而温度在一定范围外,升高会降低效率。图8画出了以上三个特征与发电量的对比情况。

特征工程

光伏发电领域特征

光伏电站利用电池板的光生伏特效应将光转化为电能。分析光伏发电系统的工作原理、功率输入输出特征后,可以对影响光电出力的因素进行建模,并且利用已有的数据产生新的特征用于光电出力预测。

关键特征1:二极管正向电流

关键特征2:前一时刻功率

光照强度以及光伏电站的设备状况随时间变化较为缓慢,使用前一时刻的功率作为特征具有一定的参考价值。

关键特征3:距离周期内峰值的距离(dis2peak)、相同距离的平均功率(mean)、标准差(std)

关键特征4:温差(板温-环境温度)

板温,现场温度会发电量影响发电量,二者的变化趋势如图11所示,它们差值和发电量也有较强的关系,如图12所示。

关键特征5:电压A/转换效率=实际板面所受光照

由于一天中日照角度的变化,已经提供的光照强度不能直接反应板面所受光照。通过查阅有关资料,转换效率计算方法为光伏板输出功率/日照功率, 其中光伏板输出功率我们用电压A代表,已知转换效率的情况下,电压A/转换效率可以表示板面实际光光照。

关键特征6:功率/该节点的风速

通过论文《风力发电机风速、功率、功率曲线的分析》得知,风速能够影响发电机的输出功率,从而进一步的影响发电量,因此我们构造出特征每个节点的功率/该节点的风速。

高阶环境特征

特种工程中一种思想是利用已有特征的组合,计算其高阶特征, 经过特征选择我们发现 ‘板温’,‘现场温度’,‘光照强度’,‘风速’,‘风向’ 即环境因素的两两之间的2阶交互项可以提供较好的预测效果。

特征选择

在比赛中,我们的基本思路是,不同模型使用不同的特征。这是由于在比赛过程中,我们发现在某个模型上十分有效的特征在另外一个模型上并不一定能够得到很好的结果。

此外,我们在比赛中使用了“前向特征选择”的方法。这种方法基本的过程是,先选择一个预测性能最好参数,然后在剩下的特征中继续选择一个与已有的特征一起作为特征集,使得分最高。以此类推,直到达到预先设定的最大特征数量或者全部特征集。

模型构建与调试

预测模型整体结构

这是一个连续目标变量回归预测问题,很多模型都能有效的解决此类问题。但是,不同的模型原理和所得结果之间是存在差异的。在比赛中我们借鉴了Stacking的思想,融合了LightGBM、XGBoost以及LSTM三个模型。其中前两类可以看作是树模型,LSTM为神经网络模型。这两类模型原理相差较大,产生的结果相关性较低,融合有利于提高预测准确性。具体的模型结构如图14及说明如下:

我们使用Xgboost_1对特征组合F1进行学习,得到Xgboost_1的预测结果(包括对于训练集和测试集的预测结果),该结果会作为新特征,加入特征组合F2,F3中,分别作为第二层LightGBM_1 和 LightGBM_2的输入特征,LightGBM_1的结果再次作为新特征,加入特征组合F4中,作为第三层Xgboost_2的输入特征,同时第三层包含一个LSTM模型,该模型使用特征组合F5训练,第二层LightGBM_2的结果则与第三层Xgboost_2,LSTM的预测结果进行加权融合作为最终结果。

基于LightGBM与XGBoost的构建与调试

在本问题中,一个严重的问题是过拟合,我们发现模型在训练样本中表现优越,但是在验证数据集以及测试数据集中表现不佳,在采取了特征,样本抽样进入训练,减少树深度和正则化参数后等有效方法后,我们发现和验证以下创新的方法可以进一步减少过拟合。

重复使用部分特征

在Light GBM模型中,我们对于环境特征(板温,现场温度,光照强度,风速,风向)执行了一次复制,即这些特征会在训练中出现两次,结果显示训练集误差几乎一致,但是线上线下验证集误差都更小,也就是说,使用重复特征,减少了过拟合的程度,使得模型的泛化,预测效果更佳。

对比加入重复特征的训练集与普通训练集的训练曲线,如图15,可见使用重复特征的模型验证误差小于不使用重复特征的模型,而两者的训练误差几乎相同的。

很多文献和实验[5]表明特征选择时去除相关性高的特征是有利的,但是在本问题中我们发现重复特征虽然和已有特征的相关性很高,但是这种做法是可以提高预测准确度的,我们认为这有可能与单个树模型在抽样特征的时候,重复特征会有更大的机率被抽到有关。

关于这一点发现是否具有通用性,需要其他数据集的实验验证。

在每折交叉验证后进行预测

单模型的参数调整对于模型的表现有很大的影响,我们使用了网格搜索,交叉验证的方法,获得规定参数范围内最优的参数组合,在确定参数后,对于单模型再次在训练中使用交叉验证,一方面是可以对比不同模型的效果,一方面是我们在4折交叉验证中,每折训练结束后,都对测试集用本折交叉验证得到的模型进行一次预测。具体的说,比如对Xgboost模型,4折交叉验证,得到4个不同的“Xgboost模型”,用这4个模型分别对测试集做一次预测,最后Xgboost的预测结果是4次预测结果的平均值,这个过程可以看作是对于训练集合的一次抽样,Xgboost最终结果实际上是4个子模型结果的融合,抽样和融合可以减少过拟合,我们发现这样的处理对于本题目的预测精度有提高。

每个单模型所使用的特征都不同

每个单模型(包括LSTM),我们有90%的特征是一致的,还有大约10%特征是每个单模型独有的,通过这种方式增加模型间的差异性,摆脱对于单一特征组合的依赖,增加了模型的泛化能力,可以获得更好的融合效果。

基于LSTM的模型构建与调试

长短期记忆网络(Long Short-Term Memory, LSTM)是一种循环神经网络,能够处理一些由长时信息引起的问题。在LSTM中,Cell是基本的单元,图16画出了LSTM中的基本单元以及有这些基本单元连接而成的网络。

在一个Cell中,包含一个称为“门”的结构,如图17。Sigmoid( )函数输出在0到1之间,如果与上一个Cell的输出相乘,这样就决定了多少信息量可以通过。

在本次比赛中,我们使用了一个包含200个单元的LSTM单层网络,结构如图18。

网络的训练和验证集误差曲线如图19。

模型融合与总结

模型融合是一种非常有效的技术,可以在大部分的机器学习任务中提高回归或者分类的准确性。可以直接使用不同模型的结果文件进行融合,也可以使用一个模型的预测结果作为另一个模型的特征进行训练,然后得到新的预测结果。我们在比赛中,综合使用了这两种融合方法。

不同类型的模型学习训练的原理不同,所学到的知识也不一样。不同的模型可能在不同的方面学习能力不一样。在本赛题中,通过参赛过程中的提交可以发现,树模型(XGBoost和LightGBM)以及LSTM单模型的学习能力都较强,在对几个模型进行线性融合之后,预测能力进一步增强。融合模型取得了了比赛中最好的成绩。

总结与展望

非常感谢国家电投和DF平台举办这样一个比赛,在比赛中,我们收获了友谊和知识,锻炼了能力,开拓了视野。

在比赛中,我们认为以下方面的因素使得我们比赛过程中不断超越自我,获得好成绩。

从团队方面来看,我们始终彼此相互信任,勤于沟通,分工协作,不轻言放弃。这些团队因素在整个比赛中支撑着我们全程不管是落后多人或者领跑全榜,始终在查找新的文献资料,始终在思考性的突破口。正是一次又一次的尝试,让我们的特征更加强效,模型更加完善,最终产出高分结果。

从技术层面来看,有以下几个方面:

  • 合理的数据预处理
    我们观察到了数据中的异常点,并将训练数据和测试数据使用相同的方式进行异常值修复(前值填充)

  • 高效的特征构造与选择
    我们通过查阅光伏发电领域文献与资料,构造了如二极管节点流,计算转换效率等强有力的特征。此外我们使用了较为科学的特征选择方法——前向特征选择。

  • 精心设计融合模型
    基于LightGBM、XGBoost和LSTM三种模型而构造的融合模型,可以综合三种模型的互补优势,同时减小过拟合的影响。

代码下载

参赛代码+数据+模型下载地址:
https://download.csdn.net/download/keypig_zz/89795239

参考文献

[1] 王坤. 考虑多重不确定性因素的光伏出力预测研究[D]. 华北电力大学, 2013.
[2] 王玉清. PN结反向饱和电流的实验研究[J]. 延安大学学报(自然科学版), 2010, 29(1):53-55.
[3] 吕学梅, 孙宗义, 曹张驰. “电池板温度及辐射量对光伏发电量影响的趋势面分析.” 创新驱动发展 提高气象灾害防御能力——S6短期气候预测理论、方法与技术 2013:922-927.
[4] 窦砚林. 风力发电机风速、功率、功率曲线的分析[J]. 科学导报, 2014(z2)
[5] Hall M A. Correlation-based feature selection for machine learning[J]. 1999.
[6] http://colah.github.io/posts/2015-08-Understanding-LSTMs/

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号