返回列表

19th place solution

360. 2019 Data Science Bowl | data-science-bowl-2019

开始: 2019-10-24 结束: 2020-01-22 学习效果预测 数据算法赛
第19名解决方案

第19名解决方案

作者: steubk | 比赛: Data Science Bowl 2019

首先,我要感谢 BS KIDS 团队、Kaggle 团队和所有 Kagglers 参与这项精彩的比赛。

在测试样本如此之少的情况下,很难在不陷入公共 LB(排行榜)攀爬陷阱的情况下处理好 QWK 指标!

这里 你可以找到(100% Kaggle 内核)解决方案。

以下是我的解决方案摘要:

  • 魔法

    对于那些想问“嘿,Kaggle 的魔法在哪里?”的人,这是我的魔法融合

    y = (2*0.7*y_lgb + 2*0.3*y_xgb + 2*3*y_auc_solved + 3*y_first_try_success)/5

    其中 y_lgb 为 lgb 回归,y_xgb 为 xgb 回归,y_auc_solved 为已解决评估 (0/123) 的二分类,y_first_try_success 为首次尝试成功评估 (012/3) 的二分类。

  • 数据增强

    感谢 @akasyanama13 和他的内核 链接,我在公共数据中增加了约 11% 的训练样本 (2,018/17,690),在私有数据中增加了更多(75%?)。

  • 验证策略

    对于每个学习模型,在 installation_id 上进行 5 折 GroupKFold 训练,迭代次数固定(无早停),使用 5 个随机种子取平均值,并使用 5,000 个打乱的截断样本的中位数进行验证:这保证了 CV 上的 RMSE 和 QWK 以及私有集上的 QWK 的稳定性。

  • 特征工程

    我从公共内核(@artgor 链接,@braquino 链接 等)开始,生成了超过一千个特征 (1,047),然后添加了以下特征:当前评估、上一游戏、上一活动、上一评估、“正确”的 event_data 以及将时间戳小时编码为周期性连续特征。

  • 特征选择

    我使用 RFE 选择了 128 个特征。首先,我移除了相关特征 (corrcoef > 0.9999) 和在 lgb 回归模型中增益最小的特征。最后一步(从 148 个减至 128 个),我计算了每个特征的 RMSE 和 QWK,并移除了那些 RMSE 和 QWK 增益均为负的特征,无论 lgb 特征重要性如何。最后一步提升了 CV 和私有集上的 QWK(CV: 0.5616 -> 0.5624,私有: 0.545 -> 0.553)。

  • 从 RMSE 到 QWK(即阈值定义)

    我构建了一个简单的贝叶斯优化,并使用来自训练集的 5,000 个打乱的截断样本进行验证。

  • 重访魔法(简单模型与集成)

    这是融合前的得分:

    模型 CV CV 标准差 公共 私有
    xgb 0.5574 0.008 0.544 0.550
    lgb 0.5638 0.008 0.538