返回列表

8th place solution (Moro & taksai)

453. MLB Player Digital Engagement Forecasting | mlb-player-digital-engagement-forecasting

开始: 2021-06-10 结束: 2021-09-09 体育商业 数据算法赛
第8名解决方案 (Moro & taksai)

第8名解决方案 (Moro & taksai)

作者: Moro (Master) & taksai (Grandmaster)
比赛排名: 第8名

感谢主办方举办了这场有趣的比赛,也感谢所有参赛者。
同时感谢我的队友 (taksai @tsaito21219)。

以下是我们团队的解决方案分享。

摘要

  • LSTM 模型
  • 验证集:2021年5月、2021年6月、2021年7月
  • 模型融合权重:LSTM : MLP : LightGBM = 5 : 1 : 1

1. 验证策略

  • 私有数据(2021年8月)属于赛季中数据,因此我们使用赛季中数据作为验证集,并选择接近2021年8月的月份。
  • 验证集:2021年5月、2021年6月、2021年7月
  • 在移动时间段的同时准备了一些模式作为训练数据。
  • 每个模型训练了10折(10-fold)

验证策略图

2. 数据预处理

  • 特征总数:232个
    • 上个月每个球员ID目标值的 均值/中位数/标准差/最小值/最大值
    • 通过键(日期/球员ID/球队ID)连接各表,使用了各表的几乎所有特征
    • 使用了除 events.csv 以外的所有表
    • 未使用目标滞后特征
  • 之所以没有使用目标滞后特征,是因为风险较大。不过,如果根据预测日期拆分模型并仅使用固定值,或许能提高分数。

3. 模型

  • LSTM (keras)
    • 输入:预测日 + 过去几天(直到5天前)的特征
    • 输出:多输出 (target1, target2, target3, target4)
    • 模型结构:Input(6days) > TimeDistributed(Dense) > LSTM > LSTM > Dense(256>128>64>4)
  • 其他模型:
    • MLP (输入:仅预测日的特征)
    • GBDT (输入:仅预测日的特征)

LSTM模型结构图

4. 模型融合

  • LSTM : MLP : GBDT = 5 : 1 : 1
  • 公共排行榜得分 (评估数据:2021年5月)
    • LSTM: LB=1.28
    • MLP : LB=1.32
    • GBDT: LB=1.36
    • 融合后: LB=1.26

5. 避免提交错误的措施

  • 添加了大量的异常处理,以便即使表或数据缺失也能正常运行。
  • 在训练和预测中使用相同的函数。
  • 创建了2021年8月和2021年9月的虚拟数据,并在本地PC和Kaggle Notebook上确认能正常运行。
  • 使用了 API 模拟器 ( @nyanpn )。非常感谢!
    API Emulator for debugging your code locally

感谢我的队友。让我们下次再一起合作!

同比赛其他方案