返回列表

20 Private LB rank solution

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

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

第20名 Private LB 解决方案

作者: Volodymyr (Team [ods.ai]PowerRangers)
比赛排名: Private LB 第20名

这是一段漫长的旅程,终于结束了,我们可以分享一些我们使用的技巧和想法。根据官方讨论和 Kernel,[ods.ai]PowerRangers 获得了 Private LB 第20名。让我们开始吧 :)

对于所有的拼写错误以及 Kernel 和这里不太好的代码风格表示歉意(LGBT-> LGBM, Bland-> Blend, ...)。我们没有足够的时间写出非常好的代码库 :(

我们的团队面临两个主要障碍:

  • 时间(考试即将来临)
  • 计算资源。至于计算资源——我们在 Kaggle Kernels 中进行了所有的实验和开发。所以我们必须应对 RAM 和执行时间的限制。

我们的主要方案:

Main Scheme

首先,我们创建了一些基线模型:

  1. 我们从统计开始——对每个 meter 进行简单的平均值或中位数计算。然后对几个分类特征(meter, day_of_week, building_id, month)进行同样的统计。你可以在这里找到 NaiveMeanModel。当然,它们的表现真的很差(Public LB 上 1.39-1.4)。但我们将这些特征用于更复杂的模型。
  2. 然后我们尝试了 RandomForestRegressor。但它相当慢,而且表现不是很好。
  3. 最后我们意识到 Meme

所以我们用 LGBM 进行了第一次实验,并进入了银牌区

现在是预处理时间!

Tom and Jerry

预处理:

  • 首先——以与此讨论几乎相同的方式检测异常值,但没那么复杂。
  • 天气数据预处理——对 NaN 进行插值,并为这些列创建 is_nan 特征。
  • 添加特征:day, day_of_week, month,滚动特征({feature}_mean_lag{window}),按分类特征的 max/min 特征(air_temperature_max)。
  • 最后,我们尝试添加 2017-2018 年的泄漏数据,但这对我们来说不是个好主意。但是添加 2016 年的泄漏数据为我们提供了更多的训练数据。

你可以更详细地查看我们的数据预处理和特征工程:

大多数想法(和代码 :))取自这些内核:

现在是建模时间!

同比赛其他方案