返回列表

13th Place Gold Solution

505. American Express - Default Prediction | amex-default-prediction

开始: 2022-05-25 结束: 2022-08-24 信贷风控 数据算法赛
第13名金牌方案
作者: Giba (Team: titericz, yamsam, imeintanis, chumajin, kurokurob)
比赛: Amex Default Prediction
排名: 第13名 (金牌)

第13名金牌方案

首先,我们要感谢 Kaggle 和工作人员举办了如此精彩的比赛。我们真的很怀念如今有趣的表格类挑战。

1. 总结

我们的解决方案基于广泛的数据清洗,以及使用排名概率的多模型加权平均和堆叠集成。通过广泛的数据清洗,与公共 Raddar 的数据集相比,我们的单模型 CV 提升了 0.0004~0.0008。最终方案(Private 0.80842 / Public 0.80105)成功进入金牌区,它是以下 3 个集成模型的平均值:

  • 包含 61 个模型的 LGBM 堆叠
  • 包含 54 个模型的 CMA(协方差矩阵自适应)加权平均
  • 包含 55 个模型的加权平均

2. 广泛的数据清洗

从 Raddar(感谢 @raddar)预处理的数据集开始,我们清洗、添加和修改了一些其他特征,以构建数据集的第二个版本。这里的想法是进一步清洗数据,并为集成增加多样性。我们根据每组特征(B、D、P、R 和 S)的缺失值模式添加了一些客户聚类。此外,一些连续变量显示出奇怪的噪声模式。看起来在某些变量的 (0 - 0.01] 范围内添加了均匀噪声。请查看特征 B_11 的分布。很明显在 0.01 范围内添加了白噪声。

特征 B_11 分布

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

清洗后的 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 的分数,并在与其他模型堆叠时增加了一些多样性。

2.1 使用清洗数据提升 CV 的示例

  • LGBM : 0.7976 → 0.7983 ( +0.0007 )
  • XGB : 0.7978 → 0.7986 ( + 0.0008 )
  • CatBoost : 0.7964 → 0.7968 ( + 0.0004 )

※ 清洗数据加上微小改动:

  • LGBM 5折交叉验证 → 15折交叉验证 (+0.0013)
  • CatBoost 更长的早停 (+0.002 )

3. 单模型

3.1 特征与建模

基本上,我们使用了公共 Notebook 中的特征和模型。感谢 @thedevastator, @ragnar123, @ambrosm, @cdeotte, @roberthatch。

注意:部分第一层模型不包括来自对抗验证的特征 (B_29, R_1, D_59)。

3.2 各模型类型的代表性最佳单模型

模型 特征数 折数 CV Public LB Private LB 备注
LGBM 1784 15 0.7991 0.79961 0.80679 dart 带早停
XGB 3413