首页 >> 大全

【时间序列竞赛方案】Baidu KDD Cup 2022 风电预测比赛总结 (含

2023-11-02 大全 28 作者:考证青年

一、任务定义

二、评估方法

三、数据详情

四、高分方案

五、参赛感想

一、 任务定义

2022年kdd cup提供了龙源电力集团有限公司独特的空间动态风力预测数据集:SDWPF,其中包括风力涡轮机的空间分布,以及时间、天气和涡轮机内部状态等动态背景因素。然而,大多数现有的数据集和竞赛将 WPF 视为时间序列预测问题,而不知道风力涡轮机的位置和上下文信息。预测目标是134个风机各自在未来288个时刻(共2天)下的输出功率

图1:风电的空间分布

不同于以往的 WPF 竞赛设置,此竞赛任务有提供两个独特的数据:

1. 空间分布:本次竞赛将提供给定风电场的所有风力涡轮机的相对位置,用于建模风力涡轮机之间的空间相关性。

2. 动态上下文:提供由每个风力涡轮机监控的重要天气情况和涡轮机内部上下文,以促进预测任务。

图2:风电涡轮机

二、评估方法

2022 年百度KDD 杯需要在48 小时之前解决空间动态风力发电预测问题。例如,在今天上午6 : 00 给出,根据风电场和相关风力涡轮机的一系列历史记录,需要有效地预测从上午6 : 00 到后天上午5 : 50 的风力发电。需要每10 分钟输出一次预测值。具体而言,在一个时间点,需要预测未来的长度288(48小时*60分钟/10分钟)风力发电时间序列。**RMSE (均方根误差)和MAE (平均绝对误差)的平均值**用作主要评估分数

图3:数据概况:发布245天数据,134个风电机

在时间步长下 ,需要预测风电场的时间序列。在这个挑战中,我们评估每个风力涡轮机的预测结果,然后将预测分数相加作为模型的最终分数。定义为风力涡轮机在时间步长下的评估分数:在时间下的总分,是所有风力涡轮机的预测分数之和,即

在预测时,滑窗的步长为,窗口大小为,模型输入长度是,输出长度是288。最后,对所有滑窗预测的结果做平均。假设我们用K个数据实例做评估,每个数据实例k,会随机采样一个滑窗步数(范围:[10分钟,100分钟]),最后分数为:在样例代码里,计算分数的代码中有几点需要注意:

● 在评估中,将输入时间序列的最大长度设置为14 天;

●由于对所有风力涡轮机的误差求和,为了避免较大的值,使用百万瓦(而不是千瓦)作为单位来表示最终得分;

● 对于提交系统中的评估(从5月10日开始),组织方在几个月内使用195个随机采样(即K=195)的步幅时间步长(即公式3中的来评估提交的模型。

未来的气象数据(风速,温度等)都未知,且我们不能使用外部数据。除了发布数据外,组织方仍然私下持有几个月的数据来评估参与者提交的模型。

三、数据详情

图4:特征字段说明

官方指出在数据使用时,要注意:

1. 零值:有一些有功功率和无功功率小于零。我们会将小于0 的所有值视为0。

2. 缺失值:由于某些原因,某些时间的某些值不是从SCADA系统收集的。这些缺失值将不用于评估模型。例如:如果是缺失值,则我们会设,而不管预测值是多少。

3. 未知值:在某些时候,风力涡轮机由于外部原因而停止发电,例如风力涡轮机翻新和/ 或主动调度动力以避免电网过载。在这些情况下,风力涡轮机的实际发电功率是未知的。这些未知值也将不用于评估模型。与缺失值类似,忽略它们。任意满足以下两种情况之一,便能判断出目标变量(Patv)是未知的:

●如果时间t下,Patv≤0且Wspd>2.5;

● 如果时间t下,Prab1>89度或Prab2>89度或Prab3>89度;‍

4. 异常值:当某样本数据存在异常记录时,不用它于评估模型,即我们会设,判断异常值的规则有两种:

● Ndir的合理范围是[-720 °,720 °] ,因为涡轮机系统允许机舱在一个方向上最多旋转两轮,否则将强制机舱返回原始位置。因此,超出范围的记录可以看作是记录系统引起的异常值;

● Wdir的合理范围是[-180 °,180 °] 。超出此范围的记录可以看作是记录系统引起的异常值。

四、高分方案

我们先介绍前排队伍的高分方案,再介绍我们团队的方案。由于一共是19个方案,多图预警,如果看到中途有些疲劳了,建议收藏以便下次阅读,也希望大家后面能拉到文末看看我的参赛感想,给大家带来的思路上的总结和帮助。

1. HIK

● 分数:-44.91708

● 排名:常规赛道第一名

●队员: Li, Sun, Geng, Jian, Wu; : Pu

● 组织:海康威视研究院,浙江大学

他们提出如图5的模型FDSTT( of Deep - and Tree Model),是唯一一支队伍在3个测试阶段都排名前3。

图5:FDSTT

FDSTT由4部分组成:

(1) Multi- Graph :该模块负责抽取多视角的图信息,用于后续的时空深度学习。主要有两个视角:空间图信息(以地理位置的欧式距离,找出top-K最近邻点构建空间图)和语义图信息(求风速一阶差分值,求每时刻两两风机之间的差分乘积,再求和作为两风机间的语义相似性,最后找出top-K最近邻点构建语义图)。

(2) DMST :DMST: Deep Multi- - 。它将当前风机i的近邻风机们的风速合并进来作为风机i的特征。另外,还用可学习的 乘one-hot风机向量获取风机。DMST是以GRU为核心单元的模型,采用递归式预测。

(3) ST-Tree :ST-Tree:- Time- Tree Model。它算每个风机之间的皮尔逊系数,再用K-means聚类,然后针对聚类的风机训练,进行分段预测。

(4) :若当前风电功率多大或过小时,DMST预测线通常会很陡峭,这时直接使用ST-Tree负责短期预测,否则用ST-Tree和DMST的短期预测平均值。而中长期预测直接用DMST的结果。

实验结果如图6所示:

图6:FDSTT的对比实验

答辩时,评委问为什么没用GNN,而是把图信息当特征引入,选手回复说是试过GNN,但效果不好,原因可能是这里的空间信息是时变的,比较复杂。

2.

●分数:-44.9234

●排名:常规赛道第二名,赛道第一名

●队员: Liu

●组织:思源电气

Liu基于风机位置,平均每日功率,对风电进行了聚类:

图7:基于每日平均功率的风机聚类

因此选手用了同时刻聚类组内的均值去替换异常特征值。另外,在特征工程,除了sin和cos时间特征、lag和diff特征,还对每日top n最高温度做平均得到。

整个模型方案如下:

图8:、GRU和本地集成模型

(1) GRU:每个风机训练一个多步预测的模型,比如如果step-size=144,那么输入144,126,108,输出就是288,252,216。每step-size对应一个模型,所以一个风机有多个模型,step-size有12,36,72,144,180等。

(2) :所有风机统一建模。

(3) Local :使用了线性回归, 多项式线性回归和。选手发现为了避免温度不同对功率预测的不稳定,用替换同时刻其它风机的温度。集成时,会用短期预测矫正长期预测,比如在使用step-size=36结果和step-size=72结果进行融合时,,最近的36步用两个预测值的平均值,然后第36-72步,则先算两者预测均值的差值,再基于step-size=36的预测值,加上差值。为了融合更精细化,用加权融合替换了平均融合。

实验结果如图9所示:

图9:Liu的对比实验

D做了一个有意思的后处理,选手认为同时刻功率越大,更偏向于理论值,而同时刻部分风机功率值相较低,可能是受风机调整或异常突发问题导致的,它们预测难度是能大的,所以 D只用GRU预测了Top5的风机,然后用它们的预测均值替换其它风机。

答辩有提问为什么用Top5的风机,选手回答是试出来的,而且由于时间有限,这块参数也没去遍历尝试得到最优的TopN参数。

3.

●分数:-45.09478

●排名:常规赛道第二名

●队员: Tan, Yue

●组织:和人大

与其他方案不同的是,谭兄用了Bert做生成式预测,一把出288个预测值。相比于大家一众的集成方案,该方案真的简洁干练:

图10:BERT生成式预测模型

但由于预测结果缺乏波动性,所以进行了后处理:对过去14天的每10分钟的,统计功率均值作为周期波动值加到对应的预测值上。但加到对应预测值时,会根据不同波动值的值大小位置,去相应乘上一个系数进行放大。

实验结果如图11所示:

图11:的对比实验

由于我们团队也使用过生成式模型一把出288个预测值,但效果不好,当时没考虑出比较好的后处理方案,所以答辩时我有问谭兄关于它后处理具体的提升有多大,谭兄回复说在第二阶段测试集是很显著的,由此可见,合适的后处理确实能带来很好的提升。

4.

● 分数:-45.13867

● 排名:常规赛道第四名,赛道第二名

●队员: Liang, Gu, Su Qiao, Lv, Xin Song

● 组织:清华大学、浙江工商大学、多伦多大学

梁兄所在的团队使用孤立森林检测出功率异常点,并用风速和功率训练,修复异常值。异常检测结果如下:

图12:异常检测和修复结果

受和的启发,选手提出,主要有:序列分解、自相关机制、多头关注、图网络编码和前馈网络。如图13所示,在图网络表征上,选手是把与风机i有Top-K高相关性的风机们,确认连接边,构建图关系。

【时间序列竞赛方案】Baidu KDD Cup 2022 风电预测比赛总结 (含_【时间序列竞赛方案】Baidu KDD Cup 2022 风电预测比赛总结 (含_

图13:网络结构

同时,选手还提出如图14的(Point-by-point based on tree model)。为了避免构建134个风机*288个点这么多个模型,选手做了以下工作:

● 附属风机:用k-shape算法将风机聚类成39类,每类风机用一个预测。附属风机可被看做是一类风机们,它们之间有最相似的发电规律。通过平均附属风机的功率,当做特征加入模型,能缓解数据噪声。

● 时间维度的降采样:实际上,单个时刻周围邻近时间点下的功率变化都不大,所以它们可以用相同模型共享一个预测值,而且也能减少数据剧烈波动带来的影响,所以这里用了窗口大小为6,步长为3的滑窗移动平均。

图15展示了的预测方法(这点做的还是很精细了,相当于模型个数=39类风机*降采样后的时间长度)

图14:

最后在模型融合时,若某时刻多个模型的预测值差异超过某阈值,则用中位数,否则用均值融合。另外也尝试用去自动计算模型权重,并加入正则项,进行加权融合。

实验结果如图15所示:

图15:阶段二和三的对比实验

5.

● 分数:-45.17326

● 排名:常规赛道第五名,赛道第三名

● 队员:Yiji Zhao, Wen, Lou, Jinji Fu, Zheng; : Lin

● 组织:北京交通大学、菜鸟网络

数据预处理时,基于不同时序之间功率的欧式距离,用K-means聚类成6类风机,如图16所示。做类内平均和风场总平均,加入到特征集当中。此外,还以20或30分钟为窗口,聚合成更粗粒度的数据。

图16:风机聚类

模型侧,使用GRU捕捉短期关系,用( Layer)捕捉长期关系。模型结构如图17所示:

图17:的模型结构

其中, MLP是由→GLU()组成。损失用了带 mask加权的MSE+MAE组合分数。另外,为了描述预测不确定性,引入了概率预测模型Deep ,即预测均值和标准差。由于数据很大的不确定性,功率波动规律复杂,选手针对短中长期的不同预测长度和不同预测粒度,分别建模预测,并且人工设置如下权重:

图18:模型集成方案

实验结果如图19所示:

图19:的对比实验

6.

● 分数:-45.18139

● 排名:常规赛道第六名

●队员: , Rao, Zhang

● 组织:华为诺亚

取当前风机下同时刻Pab1/2/3最大值作为特征。Patv

图20:

需要注意,有两种,一种是中间两个参数时所有特征共享,一种是每个特征分别学习对应的权重,选手用的是前者,即-S。另外选手增加了一个线性层在后面以加深对信息探索,这构成了模型。此外,选手还将原始分为和ID,重新编号作为特征喂入模型,而且还做了聚类平均值特征。

图21:将原始分为和ID,并重新编号

用来做多水平训练和预测:

图22:的训练和预测策略

此外,收到模式识别任务的启发,选手使用了 Gated (XTGN)抽取隐含的表征模式,然后做预测,整体结构如下。通过堆叠空洞因果卷积层,使得TCN获取长时序接收域和缓解梯度消失问题。同时,基于风机位置的余弦距离,生成k最近邻图,再学习一个邻接矩阵A去体现信息扩散,使得最终预测时会依赖邻近风机预测值。

图23:XTGN

最后平均融合,实验结果如图24所示:

图24:的对比实验

7. 88VIP

● 分数:-45.21301

● 排名:常规赛道第七名

● 队员: Lin, Wei Jiang, Zhang; : Cheng Yang

● 组织:阿里巴巴

选手使用了如图25的GRU和GBDT的模型集成方案。在风机聚类上,尝试基于空间位置和时序统计相关性两种基准进行聚类,最终实验表现用空间信息聚类更好,而且GRU用24类,GBDT用4类。训练时,针对每组风机,分别训练GRU和GBDT模型。对于GRU,先预训练模型(输入长度=72,输出长度=288),再微调fine-tune短期预测(输入长度=36,输出长度=36)。最后,为了减缓线下和线上分布不一致问题,后处理对每个预测值乘上调整常量a,若历史真实值均值高于预测值均值,则a>1,否则小于1。在第3阶段测试集上,a=1.1能提升0.237个点,还是十分显著有效的提升。

图25:88VIP的解决方案

实验结果如图26所示:

图26:88VIP的对比实验

8.

● 分数:-45.23701

● 排名:常规赛道第八名

● 队员: Luan; : Hou

●组织:海康威视

选手使用了如图27的模型结构。在空间信息融合方面,用8个最近邻风机的数据,合并一起或用关注模块学习如何融合近邻风机的关系。在编码器上,可使用LSTM/GRU/TCN。在解码器上,核心组件是GRU,但为了提高建模能力,加入时间关注模块去探索编码器输入和解码器隐藏向量之间的关系,另外,上下文向量也会后续每轮反复增强十日,以提高模型准确性。

图27:的网络结构

选手还分为小时级预测和10分钟预测,其中选择和随机森林做小时级预测,参与后续的模型融合,实验结果如图28所示:

图28:的对比实验

9.

●分数:-45.23701

●排名:常规赛道第九名

●队员: Wang

●组织:阿里巴巴达摩院

选手只用了树模型,整个方案基于两个信息源:均值和惯性。预测2天,选手把前3个小时当做惯性阶段,把后面45小时当做均值阶段。通过对每个阶段做预测,其中,均值阶段是每个风机一个模型,而惯性阶段是18*134个模型。在模型集成时,基于空间信息,使用了两个简单又便捷的空间集成方法:

图29:空间集成方法

●:分别是每个风机的预测值和他们最近和次近的风机预测值。

●:求地理上近邻风机的均值,和给定风机预测值做平均融合。

由于不同月份功率变化挺不一样的,选手做了后处理,对18个近期预测值乘1.08,对中长期的270个点乘1.18。实验结果如图30所示:

图30:的对比实验,a为固定参数,b为微调参数,c为短期模型,d为基于空间的模型集成,e为整体预测*1.18,f为开头18个预测成*1.08

10.

● 分数:-45.32777

●排名:常规赛道第十名

●队员: Wang, Jinda Lu, Yuan Gao

●组织:中科大

模型用了和GRU,其中的特征有加入邻近风机们特征的均值,特征主要是lag特征,预测目标是两个点Patv的均值。另外,选手使用了2个GRU模型,分别预测前半部分 (GRU-FH) 和总长度 (GRU-ALL) 。编码器输入序列长度为144。

图31:GRU模型

模型融合方案如下,其中S为风机的邻接矩阵。

实验结果如图32所示:

图32:的对比实验

11.

●分数:-45.36026

●排名:常规赛道第十一名

●队员: Jiang, Han; : Wang

●组织:北航

选手用了AGCRN ( Graph ) 和MTGNN ( Time Graph ),由于本人对图不是特别了解(还是太菜了),建议感兴趣的朋友直接阅读论文,模型结构如下:

图33:AGCRN和MTGNN

12. -UCM

●分数:-45.56335

●排名:常规赛道第二十名

●队员: án , Ángel Suárez Á, Velez , Neira ,

●组织:BCAM- for ,UCM和

分别对不同预测阶段 (6,18,60,288) 建模GRU,然后用5折最大值,和KNN一起做模型融合。GRU模型结构和实验记录如下:

图34:-UCM的模型和对比实验

13.

●分数:-45.6186

●排名:赛道第四名

●队员:Zhi Liu, Min Li, He Wei, Yang, : Min L

●组织:中南大学、腾讯

使用KNN对异常值和缺失值做填补修复。针对每个风机训练各自的GRU模型。人工均匀选择了6个代表性风机用于参数优化 (格子搜索)。

14.

●分数:-45.64764

●排名:赛道第五名‍

●队员: Ai, Wenqi Wu, Zhang

●组织:OPPO研究院

终于介绍到我们团队的方案了,我们在异常处理上花了一些时间,具体异常处理方案如下:

图35:异常总览和预处理方法

基于稀疏核机拟合出风速-最大功率的包络曲线,这也是评委觉得是个创新点的地方,我们将曲线以上的点当做异常点进行处理,同时,把和Patv的差值作为特征加入到模型当中。

图36:风速-最大功率的曲线

另外,我们发现同时刻风向混乱无规律,我们猜测是不同风机的指北风向基准不一致,我们选择一段风速大的时期,假设风向会处于均值方向,从而计算得到每个风向的矫正量,通过矫正,风向明显具有聚集性:

图37:风向纠正

我们使用了预测第288个点,负责长期预测。使用以多元LSTM为核心的结果,递归式预测出功率,模型结果如下所示,我们单独预测风场的风速,并加入到部分,输出再接上风机维度的自关注模块和配平层。

图38:带层次配平约束的多元LSTM

最后我们用MV-LSTM分不同预测水平长度建模预测,对于144-288时间段的预测,使用和MV-LSTM做了加权平均。

15. yura

●分数:-46.16117

●排名:赛道第六名

●队员‍: Su

●组织:中科大

简单的使用了模型:

图39:模型

16.

●分数:-46.17403

● 排名:赛道第七名

● 队员:

● 组织:日本金融工程集团

基于和图学习模型,提出STGT模型 (- Graph Model),该模型结合图使用了SMOTE回归,然后使用多头关注分解成趋势和季节项,最后预测值和合并预测的分解项。在构建图时,节点是134个风机,边是由Top 5功率相关的风机构成。数据增强中的空间扰乱是指以一定概率随机打乱风机编号。另外,作者还用了LSTM模型,用于后续的平均融合。

图40:STGT模型

实验记录如下:

图41:的本地对比实验

17. QDU

● 分数:-46.26986

● 排名:赛道第八名

● 队员: Li, Jieqi Xing, Wu; : Wu

● 组织:青岛大学

在预处理时,由于滑窗组织数据带来的序列重叠问题,选手以0.01的采样比例,对每个风机随机采样。同时,为了保证尽可能利用上多的数据,采样了3个数据集。如图42所示。

图42:预测流程框架

详细特征输入和模型结构如图43,其中Input=12*12*4,12*12=144是输入序列长度,4为特征数量。

图43:特征输入和模型结构

实验结果如下:

图44:QDU的对比实验

18.

● 分数:-46.33641

● 排名:赛道第九名

● 队员: Zhang, Zeyu Long, Yusu Mao; : Zhu

● 组织:上海大学

做了异常值和缺失值的处理,使用了GRU模型。

19. IFBD

● 分数:-46.34794

● 排名:赛道第十名

● 队员: Yu

● 组织:

选手提出了GCN-模型去预测长期功率。短期关系喂入第一个,长期关系喂入第二个,结合两个进入MLP。由于使用了的代码框架,选手还构建了带关注模块的图卷积网络。整体模型结构如下:

图45:GCN-模型

实验结果如下:

图46:IFBD的对比实验

五、参赛感想

总算是看完并总结完了前排19个团队的方案,建议有兴趣深入的朋友,可以直接阅读官方开源的论文和代码 [1]。这里谈下我个人的参赛感想。众所周知,时序比赛常因为不同测试集在时间上特征/标签的分布不一致,导致排行榜不稳定。但这次KDD Cup给我感觉反而还好,3个测试阶段,第1阶段切换到第2阶段确实有剧烈的排行榜抖动,但第3阶段其实跟第2阶段的数据分布,感觉差异不是很大,而且第3阶段给了3天(3次/天,总共9次提交机会)让选手提交结果,相对于给我们一个合适的机会去将模型适配到新的测试集上,所以个人觉得方案调整是在一定可控范围内的。在阅读前排方案和复盘所在团队方案的过程中,明显发现WPF数据的两个挑战:

1. 在风电功率波动规律性弱的情况下,如果做好长时序预测任务?

2. 如何将风场内各风机的空间信息加入到模型当中,提高模型表现?

这两个挑战也意味机遇,如果做好第1点,获奖便问题不大,做好第2点,会让你有在高分区挣得一丝优势(常规赛道TOP3便很焦灼,第一和第2差了0.006,第2跟第3差0.17)。其中,对于这两个问题,个人的具体想法如下:

1. 受限于气象的不稳定性,其实功率的预测难度很大,虽然组织方希望我们预测未来2天的功率,但实际上透过EDA和模型表现来看,功率短期预测还是没问题的,例如未来6小时。所以引发一个业务思考:“当别人告诉你要做长期预测时,我们是不是该提前做好可行性分析?如果非要长期预测,我们是不是争取把可预测性强的短期预测线争取预测好,再考虑如何提升模型的中长期预测能力?”。按照先验,一开始面临长时序问题,拍脑袋就是生成式预测,因为能一把出,而且不会像递归预测能带来误差累计,但实际上我们团队使用生成式预测,预测线近乎一条直线,反而用递归预测,效果更好,因为递归预测强调时序前后依赖,强迫模型在短期预测好,不然中长期的误差会更大,而直接生成预测中未来多步相对独立预测。当然不是说直接预测便不好,像谭兄就是用BERT一把出288个点取得高分,可能原因是BERT内部对时序前后依赖信息的学习更加充分,或者是后处理附加波动性的原因。对于大部分选手来说,做好短期预测最直接的办法就是分段建模预测并且模型融合,以争取到最大化短期预测带来的分数收益,阿里巴巴88VIP团队的方案就很典型。我们团队只在第3阶段才意识到这个问题,已经没时间过多尝试,着实有些可惜。

2. 时空信息是相对比较复杂的,我们团队也绘制过功率的时空变化图,发现风机间的空间关系具有时变性,而且没有特别明显的关系,对于前排顶端的团队,基本用了2种度量近邻风机的方法:空间距离和功率相关性。有团队试过空间距离不好,有团队说空间距离好,说明这块相对没有比短期预测的分那么好拿。前排有很多方案,例如求功率相关性/地理位置后聚类/人工划分获取风机,把近邻风机的特征们求均值加入特征,或者分建模预测,我很喜欢华为诺亚和阿里达摩院使用近邻风机预测值,去做模型预测值的融合。

另外,关于异常值处理,它是很基础且重要的一步,是每个方案都必不可少的一环。特征工程都大同小异。模型反而各种各样,很多选手的方案图和论文都写的很好,像海康和清华等。最后,感谢百度举办这次比赛,个人还是有所收获,也感谢队友东哥的carry,希望以后大家都再接再厉。

参考资料

[1] Baidu KDD CUP 2022 风电预测高分论文和代码 - 飞浆AI , 官网:

推荐阅读:我的2022届互联网校招分享我的2021总结浅谈算法岗和开发岗的区别互联网校招研发薪资汇总
2022届互联网求职现状,金9银10快变成铜9铁10!!公众号:AI蜗牛车保持谦逊、保持自律、保持进步发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
发送【1222】获取一份不错的leetcode刷题笔记发送【AI四大名著】获取四本经典AI电子书

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了