返回列表

18th Place Gold

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

开始: 2022-05-25 结束: 2022-08-24 信贷风控 数据算法赛
第18名 金牌方案

第18名 金牌方案

作者:MartinBarus
比赛排名:第18名

概述

这次比赛让我获得了我的第一枚(单人)金牌,所以我相信你可以想象我有多高兴,我有多么享受这次比赛。非常感谢组织者和 Kaggle 团队!

我的工作也是基于其他人伟大的努力,所以非常感谢并致敬 @cdeotte@raddar@ragnar123@thedevastator,我将在下文提及我使用的他们所有的贡献。

我建立了一个3阶段的模型——39个第一阶段基础模型,2个第二阶段集成模型,第三阶段是这2个第二阶段模型的简单平均。

第一阶段 - 39个基础模型

我对每个模型使用了相同的交叉验证(CV)策略:fold = argsort(customer_id)%5。对于每个模型,我都生成了袋外预测和经过折平均的测试预测。

1. 使用 @raddar 的 数据集 的 lightgbm

  • 计算了简单的特征,当特征在训练集和测试集中非零时,计算“首次/最后”特征值的分数和“均值/最后”值的分数,否则计算这些组合的差值。
  • 对超参数进行了简单的手动调整。
  • 总共13个模型。

2. 来自 @ragnar123 的 lightgbm

  • 总共8个模型。
  • 1个原始模型。
  • 5个调整了学习率的模型。
  • 2个缩放模型:original_num_trees * Noriginal_learning_rate/N,其中 N 为 [2,4]。

3. 来自 @thedevastator 的 lightgbm

  • 总共3个模型。
  • 1个原始模型。
  • 2个缩放模型:original_num_trees * Noriginal_learning_rate/N,其中 N 为 [2,4]。

4. 我自定义的 CNN 实现与自定义数据集

  • 总共13个模型。
  • 不同的架构(滤波器数量和卷积层数量)。

5. 来自 @cdeotte 的 transformer

  • 仅1个原始模型。

6. 高斯朴素贝叶斯

  • 仅1个模型,使用与第1个 lightgbm 相同的数据集。

第二阶段 - 2个 MLPRegressor(多层感知器回归器)

我尝试了不同基础模型组的不同集成方式。以下是我的发现:

对于公共 lightgbm(第一阶段,模型3和4),使用因子 n=1,2,4 缩放的相同参数的3个模型的平均效果很好。

“少数较好模型”的平均及其集成显示出更好的 CV,但 LB(排行榜)分数的提升并不对应。

这导致我使用我构建的所有模型来建立集成,甚至是 CV 为 0.55 的朴素贝叶斯。

我尝试了不同的方法——ElasticNet、BayesianRidge、LogisticRegression、我自定义的非负线性模型(权重为零或正,最大为1,总和为1)、KNN、Lightgbm/XGboost 和 MLPRegressor。

我发现 MLPRegressor 效果最好,所以我进行了100个模型的随机网格搜索:随机选择1到3个隐藏层数,每层随机选择最多100个神经元。

由于 MLPRegressor 是非线性的,我不仅尝试了单个最佳模型,还尝试了少数最佳 MLPRegressor 的平均。

我最后的2个第二阶段模型是2个 MLPRegressor,都有2个隐藏层,第一个在隐藏层有52和94个神经元,第二个有10和20个神经元。

第三阶段 - 简单平均

我对

同比赛其他方案