返回列表

25th Place Solution

354. ASHRAE - Great Energy Predictor III | ashrae-energy-prediction

开始: 2019-10-15 结束: 2019-12-19 双碳与可持续发展 数据算法赛
第25名方案

第25名方案

作者: Georgi Pamukov
比赛排名: 第25名

各位 Kaggle 的朋友们好 :)

首先,祝贺所有的获奖者和参与者!非常感谢所有贡献者分享了精彩的内核和话题!

我想分享一点自己的心得——下面是我方案的简要概述。

动机

我参加比赛的时间比较晚——距离结束只有两周时间。我的主要动机是尝试在表格数据(以及此类问题)中使用深度学习。

架构

像大多数参赛者一样,我最终采用了两层学习架构:基础层和集成层。

基础层:

特征工程

由于起步较晚,我没有时间做太花哨的东西(特征工程通常是我的重点,但这次不是 😄)。

我最终准备了4个不同的数据集。在所有数据集上,我都按照这个很棒的内核进行了清洗(过滤掉坏行)(请点赞:https://www.kaggle.com/purist1024/ashrae-simple-data-cleanup-lb-1-08-no-leaks)。

使用插值法填充缺失值(所有数据集),并在其中一个数据集中添加了“is_missing”特征。此外还生成了一些:

  • 基于天气的特征(聚合/分组,滞后/滚动(移动平均/最大/最小值等))
  • 基于时间的特征(包括其中一个数据集的假期信息)
  • 目标编码(在其中一个数据集中)。

在这个过程中,我从许多优秀的内核中汲取了灵感——请查看下面的列表,并为作者们的精彩作品点赞——他们值得您的肯定!

模型

我的主要精力集中在这里,目标是建立尽可能多样化的模型。在基础层的任何模型中,我都没有使用泄漏数据。总共训练了19个模型。其中包括:

深度神经网络

正如我所提到的,我的目标主要是尝试这些——所以我投入了大量的精力。我最好的神经网络没有让我失望——它们的性能接近最好的公共 LGBM(LB 1.09)——当然,它们对问题的“看法”非常不同。这使得它们在最终的集成中非常有用,我主要将最终的好成绩归功于此。一些在这里效果很好的方法:

  • 分类变量的实体嵌入
  • Radam 优化器(这有点让我惊讶——在 CV 竞赛中,Radam 对我来说似乎没有产生巨大的差异——但在这里它显示了显著的优势。也许是网络的规模,或者是问题的复杂性……我肯定会深入研究这个)
  • Adam 配合 CyclicLR + ReduceLROnPlateau 调度器 + 更长时间的训练
  • 天气滞后特征 + (少量)时间特征

没有起作用的方法:

  • 更多特征(并不惊讶)
  • “is_missing”特征(有点惊讶)

简而言之——我对我的发现非常满意。在未来的表格数据竞赛中,深度神经网络肯定会成为我的考虑对象。

LGBMs(当然 😄):

  • 按站点、仪表、一半一半以及所有数据分别建模——在不同的数据集上训练。
  • 我得分最高的模型是按站点的(表现明显优于最好的公共模型(LB 1.072))

L1, L2 回归模型——只是为了多一种“意见”:

  • 按站点和所有数据
  • 对于这种偏线性的问题是有意义的。

集成

这是提升我分数的第二个主要因素。根据我以往的经验,当测试数据没有本质区别时,堆叠的效果优于混合(当然这可以有争议)。

(不)免责声明:

  • 这并不适用于所有情况
  • 嗯……测试数据到底有多相似……
  • 你的基础层是否合适——是否足够多样化?你是否已经过拟合了?如果你为基础模型使用了不同的验证/OOF预测方案,是否在元模型的训练数据中引入了泄漏?
  • 还有许多其他(重要)变量——比如元学习器使用什么算法,如何调整、验证等。
  • 总体上是非常冒险的方法(过拟合是主要担忧……)。

尽管如此……这在过去对我很有效。这次也一样。让我给你一些数字:

  • 我最好的堆叠:1.245 (PL)
  • 我最好的混合:1.270 (PL)