首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

目录

赛题背景与任务

数据分析与预处理

特征工程

模型选择与融合

总结

我们使用“DataInsight”作为队伍名参加了“2018创客中国-国家电投大数据及智能应用创新创业大赛”中的光伏发电量预测这一赛题。在比赛中我们使用的核心模型为:XGBoost+LightGBM+LSTM。最终在初赛A榜和B榜分别获得第一名,决赛获得第二名。本文将介绍比赛过程中,我们队的基本思路以及使用的一些方法和技巧,希望能给和我们一样刚接触比赛的同学提供一些基本技巧和入门级的实现代码。

0. 赛题背景与任务

作为世界第一大清洁能源的太阳能相对煤炭石油等能源来说是可再生、无污染的,只要有太阳就有太阳能,所以太阳能的利用被很多国家列为重点开发项目。但太阳能具有波动性和间歇性的特性,太阳能电站的输出功率受光伏板本体性能、气象条件、运行工况等多种因素影响,具有很强的随机性,由此带来的大规模并网困境严重制约着光伏发电的发展。通过对未来光伏发电功率的短期准确预测并设定调度计划是解决此问题的关键。目前,光伏发电功率预测技术多仅围绕气象条件和历史数据建模,而忽略了光伏板本体性能和实际运行工况对发电效率的影响,因此无法保障短期发电功率预测精度。

在分析光伏发电原理的基础上,论证了辐照度、光伏板工作温度等影响光伏输出功率的因素,通过实时监测的光伏板运行状态参数和气象参数建立预测模型,预估光伏电站瞬时发电量,根据光伏电站DCS系统提供的实际发电量数据进行对比分析,验证模型的实际应用价值。

1. 数据分析与预处理

选取温度、平均功率、电压、转换效率这几个特征进行可视化,发现这几个特征均存在异常值。明显的,温度这一特征存在-6000摄氏度这样的异常样本。

如何确定这些异常值?我们采取了不同特征不同标准的策略。一般认为1.5*(Q3-Q1)以外3的取值为异常,其中Q3和Q1为数据的较大四分位和较小四分位。在比赛中,我们设置的q*(Q3-Q1),q的取值1.4、1.5、10或者其他值。

确定异常数据后,对这些异常数据的不同处理方式会影响后续算法的表现。一般大家都会想到,使用平均值、前值、特殊值填充等策略,具体哪种好,可能需要具体场景下多试几次才知道。数据预处理的代码如下:

经过数据预处理后的板温数据可视化后非常符合我们日常对温度的认识。

2. 特征工程

特征决定上限,因此特征工程很关键。特征工程整体思路是分别构造光伏发电领域特征和多项式特征。

光伏发电专业领域特征:

(1)绘制目标变量——发电量的变化趋势如下图所示,发现数据呈现周期特性。因此构造了距离峰值的距离、距离峰值相等距离点的标准差、均值等统计特征。

(2)光伏电站等效电路二极管饱和电流

(3)风速*风向

(4)板温-环境温度

(5)其他特征

光伏发电专业领域特征:

使用了,['板温','光照强度','转换效率A','电压A','电流A','风速','风向','temp_diff','平均功率']这几个特征产生poly特征。

特征工程部分的代码如下:

3. 模型选择与融合

这个题目,我们一开始想到的是LightGBM和XGBoost。这两个模型在数据挖掘比赛中被大量使用,这里不过多介绍。该部分只介绍我们使用的参数,细节可通过公众号回复“光伏”获取源代码进行参考。

考虑到数据的周期和时序特性,在比赛后期使用了LSTM模型。经过估计,数据的周期在200左右,我们使用了的LSTM模型中的units数目为200。

LSTM这一部分的代码如下:

模型融合是一种非常有效的技术,可以在大部分的机器学习任务中提高回归或者分类的准确性。可以直接使用不同模型的结果文件进行融合,也可以使用一个模型的预测结果作为另一个模型的特征进行训练,然后得到新的预测结果。我们在比赛中,综合使用了这两种融合方法。不同类型的模型学习训练的原理不同,所学到的知识也不一样。不同的模型可能在不同的方面学习能力不一样。在本赛题中,通过参赛过程中的提交可以发现,树模型(XGBoost和LightGBM)以及LSTM单模型的学习能力都较强,在对几个模型进行线性融合之后,预测能力进一步增强。融合模型取得了了比赛中最好的成绩。模型融合的整体结构如下图。

4. 总结

非常感谢国家电投和DF平台举办这样一个比赛,在比赛中,我们收获了友谊和知识,锻炼了能力,开拓了视野。在比赛中,我们认为以下方面的因素使得我们比赛过程中不断超越自我,获得好成绩。

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

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

合理的数据预处理

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

高效的特征构造与选择

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

精心设计融合模型

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

回复“光伏”获取数据和源代码。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180923G01NY600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券