返回列表

13th place gold solution

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

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

第13名金牌方案

作者:Tim Yee
比赛:ASHRAE - Great Energy Predictor III

感谢 ASHRAE 提供这个未清洗的数据集!感谢 Kaggle 持续举办比赛。祝贺所有在 LB(排行榜)震动中幸存下来的人!

感谢 @rohanrao@kailex@nz0722@aitude@purist1024 提供的优秀 Notebooks,它们对我取得这一成绩有直接帮助。

摘要

最终 2 次提交:以下模型的等权融合,外加一些正则化处理。

  1. ASHRAE Simple Data Cleanup
  2. ASHRAE Half and Half (原始工作归功于 AC-DC)
  3. ASHRAE Kfold LightGBM without leak
  4. Aligned Timestamp LightGBM by Meter Type

公开 LB:0.935(无泄漏估计值为 1.032),采用激进正则化 0.80 和 0.91
公开 LB:0.944(无泄漏估计值为 1.039),采用保守正则化,全部为 0.91
公开 LB:0.950(无泄漏估计值为 1.045),无技巧 —— 我未选择此方案提交

有效的策略

  1. 数据清洗 —— 垃圾进,垃圾出。这可能是比赛中最重要的环节。我通过绘制热力图手动进行清洗,并深入检查每栋建筑的仪表读数是否合理。我还通过添加以下代码行来反向工程热力图以仅显示零值:
    train_df = train_df.query('not (meter_reading != 0)')
  2. 正则化 ——(我称之为正则化,也许有人会称之为后处理、系数、技巧等)—— 乘以某个小于 1.0 的值。对于激进正则化,我对响应灵敏的仪表使用了 0.80,对响应较差的仪表使用了 0.91。我从 0.95 开始逐个探测每个站点的仪表,记录下哪些仪表能使公开 LB 下降 0.001(即对正则化有响应)。这个想法来自 LANL 地震预测比赛。幸运的是,我有信心如果我试图通过这种方式过拟合 LB,LB 不会让我失望。我在泄漏站点 0、1、2、4、15 上运行了一些测试,以测试各站点仪表对不同数值的反应。开始探测时,0.90-0.95 似乎是相当安全的数值。通过 29 次提交(耗时约 2 周),我在 LB 上提升了约 0.015。随着剩余提交次数减少,我增加了正则化的激进程度,并开始将响应灵敏的站点仪表作为一组提交进行探测,因为没有足够的提交次数来尝试所有可能的值。这使私有 LB 分数降低了 0.004 - 0.005。如果没有正则化,我在私有 LB 上只能排第 35 名,所以这个技巧确实让我的分数有了质的飞跃,最终获得了金牌。
  3. 特征工程 —— 在 half-and-half 模型中,我添加了一个特征,将 building_idmeterweekdayhour 分组,并使用完整训练集(数据清洗后)进行均值目标编码。这个想法来自这个
同比赛其他方案