返回列表

21st Solution and Code Sharing

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

开始: 2022-05-25 结束: 2022-08-24 信贷风控 数据算法赛
第21名方案与代码分享

第21名方案与代码分享

作者: Joe Eddy, Angus Chang, Ryota
比赛: Amex Default Prediction

非常非常感谢 @andrew60909@ryotak12 带来的出色团队体验。我们学到了很多,也玩得很开心,我很感激他们对我长期、大部分时间都不太成功的 Transformer 尝试所表现出的耐心 😂。同样感谢 Amex 和 Kaggle 主办这场有趣的比赛,感谢 @raddar 和其他分享资源的人,这让比赛变得更加容易上手。

我在这里公开了我的个人代码:https://github.com/JEddy92/amex_default_kaggle。我尝试为特征工程(FE)和建模的分工创建一个合理的通用结构,包含可复用的训练功能和跨多种模型的结果记录功能。还有一些清理工作要做,并不像理想中那么完美!

如果您对我们的方法有任何疑问,请随时提问!

方案总结

我们使用逻辑回归对约 60 组预测结果进行了集成,这些多样性来自于不同的模型、特征集和数据视角。模型包括常见的梯度提升模型组合(LGBM, LGBM dart, XGBoost, CatBoost)、MLP、TabNet 和 Transformer,以及一些特殊技巧。数据视角包括聚合数据、完全扁平化数据(每个客户 13 个原始特征)、序列数据(Transformer)和增强数据(将报表向前移动 1 位并追加到原始数据中)。接下来是非常详细的特征信息——它们分散在我们 3 个不同团队成员的不同模型中,但这旨在成为我们所有人所用内容的完整汇编。


数据集与符号

  • 所有内容均源自 Raddar 的数据集

\(\mathcal{D}_{fulltrain}\) : 原始完整训练集(5531451 行)

\(\mathcal{D}_{train}\) : 训练集(458913 行)

\(\mathcal{D}_{fulltest}\) : 原始完整测试集

\(\mathcal{D}_{test}\) : 测试集


主要特征

我们每个人 CV 分数最高的训练集是由 \(\mathcal{D}_{fulltrain}\) 通过以下特征生成的:

  • 数值型
    • 均值、标准差、最大值、最小值、第一个值、最后一个值
    • 最后值-均值、最后值/均值、最后值/第一个值、最后值/标准差、最大值/最小值、线性加权平均值
    • 类似上面的聚合,但仅限于最后 3、5 等条报表
    • 近期差分特征和所有差分的聚合
    • 基于月份的排名
    • 乘法和除法:为所有特征创建所有可能的配对,分类特征和与其他特征高度相关的特征除外。乘法和除法在使用 MinMaxScaler(0-1) 缩放并裁剪异常值后进行
    • 空值聚合(包括起始连续空值与随机空值)
    • 日期特征(例如客户报表间隔的统计数据)
  • 趋势:最旧的月份为 1,最新的月份为 13,取以下时间段的平均值
    • mean(13,12) - mean(11,10)
    • mean(13,12,11) - mean(10,9,8)
    • mean(13,12,11) - mean(3,2,1)
    • mean(13,12,11,10,9,8) - mean(7,6,5,4,3,2)
  • 类别型
    • 第一个值、最后一个值
    • 熵:频率表上的香农熵
    • Nunique:唯一类别值的数量
    • 每个类别中每个值的计数(原始计数和 tf-idf 计数)
    • 每个类别的 P_2 均值(跨训练集和测试集)
    • 每个类别随时间变化的 SVD 分解
同比赛其他方案