505. American Express - Default Prediction | amex-default-prediction
首先,我们要感谢 Kaggle 和工作人员举办了如此精彩的比赛。我们真的很怀念如今有趣的表格类挑战。
我们的解决方案基于广泛的数据清洗,以及使用排名概率的多模型加权平均和堆叠集成。通过广泛的数据清洗,与公共 Raddar 的数据集相比,我们的单模型 CV 提升了 0.0004~0.0008。最终方案(Private 0.80842 / Public 0.80105)成功进入金牌区,它是以下 3 个集成模型的平均值:
从 Raddar(感谢 @raddar)预处理的数据集开始,我们清洗、添加和修改了一些其他特征,以构建数据集的第二个版本。这里的想法是进一步清洗数据,并为集成增加多样性。我们根据每组特征(B、D、P、R 和 S)的缺失值模式添加了一些客户聚类。此外,一些连续变量显示出奇怪的噪声模式。看起来在某些变量的 (0 - 0.01] 范围内添加了均匀噪声。请查看特征 B_11 的分布。很明显在 0.01 范围内添加了白噪声。

我们花了一些时间试图找出消除这种噪声的方法,并发现了一些使用其他特征的过滤器组合效果很好。例如,可以通过使用 B_1 中的过滤器来清洗 B_11 特征。选取 B_1 在 0-0.01 范围内的索引,并基于这些索引反转 B_11 的信号,新的直方图变为:

这种清洗方法也应用于其他一些特征,如:B_1, B_5, B_7, B_11, B_15, B_17, B_18, B_21, B_23, B_24, B_26, B_27, B_29, B_36, B_37, D_58, D_60, D_69, D_71, D_102, D_133, D_144, R_1, R_6, S_16, S_17, S_19, S_22 和 S_27。额外的特征清洗有助于提高 GBDT 的分数,并在与其他模型堆叠时增加了一些多样性。
※ 清洗数据加上微小改动:
基本上,我们使用了公共 Notebook 中的特征和模型。感谢 @thedevastator, @ragnar123, @ambrosm, @cdeotte, @roberthatch。
注意:部分第一层模型不包括来自对抗验证的特征 (B_29, R_1, D_59)。
| 模型 | 特征数 | 折数 | CV | Public LB | Private LB | 备注 |
|---|---|---|---|---|---|---|
| LGBM | 1784 | 15 | 0.7991 | 0.79961 | 0.80679 | dart 带早停 |
| XGB | 3413 |