返回列表

1st place - A lot of features, a lot of models, and a little bit of luck

678. Playground Series - Season 5, Episode 11 | playground-series-s5e11

开始: 2025-11-01 结束: 2025-11-30 信贷风控 数据算法赛
第一名 - 很多特征,很多模型,还有一点运气

第一名 - 很多特征,很多模型,还有一点运气

作者: Mahog
发布时间: 2025-12-01

哇!我一直梦想获得第一名,终于实现了 :D。祝贺所有战胜了盲融 notebook 的人(不知为何它们在私有榜单上表现不错),非常感谢分享代码和见解的人们,包括但不限于:@cdeotte, @masayakawamata, @yekenot, @yeoyunsianggeremie, @jklol86, @mikhailnaumov

现在来看看我的解决方案:

特征工程 (FE)

这可能是比赛中最重要的部分。我最好的单个模型 CV 0.92818,LB 0.92923,本可以排第 2!它使用了以下特征:

  • 基础特征的组合(配对)+ TE/CE
  • 数值特征的 digit(数字位)
  • 每个数值特征的 digit 之间的组合(配对、三元组、四元组)+ TE/CE。这意味着我只在每个特征的 digit 之间创建交互特征
  • 来自 这里 的 Round 特征
  • digit 和基础特征的一些组合
  • 不同基础特征的 digit 的一些组合
  • 原始数据集上基础特征 + 一些 digit 的 TE/CE
  • 原始数据集上使用 'employment_status' 作为目标的基础特征的 TE
  • 训练数据集上使用 'employment_status' 和 'debt_to_income_ratio' 作为目标的基础特征的 TE

对 CV 提升很小的杂项特征:

  • 分箱后的数值特征 (Quantile binned numericals)
  • 我在某处找到的 'default_risk' 特征
  • 'credit_score' 的分类版本(我本打算对其他数值特征也这样做,但有点忘了)

我知道其中一些可能很难理解,所以我很快就会发布我最好的单个模型代码(更新:notebook 可以在 这里 找到)

模型

我稍后会详细说明这部分,因为我有点忙,但简而言之,我的集成总共有 100 个模型 :D!

更新:模型及其分数(最佳模型)如下:

模型类型 CV 公共榜单 (Public LB) 私有榜单 (Private LB)
XGBoost 0.928175 0.92831 0.92923
LightGBM 0.928081 0.92818 0.92920
RealMLP 0.927952 0.92812 0.92906
TabM 0.927833 0.92805 0.92895
LightGBM-dart 0.927772 0.92822 0.92920
CatBoost 0.927656 0.92806 0.92899
XGBoost (reg) 0.927334 0.92789 0.92857
DANet 0.926766 0.92776 0.92867
Resnet 0.926557 0.92713 0.92798
Logistic Regression 0.926291 0.92669 0.92757
LAMA-DenseLight 0.926145 NA NA
Trompt 0.926000 0.92616 0.92756
Gandalf 0.925989 0.92741 0.92808
Bartz 0.925944 0.92703 0.92802
FTTransformer 0.925272 0.92576 0.92704
Random Forest 0.925079 0.92549 0.92643
DeepFM 0.924872 0.92537 0.92645
TabulaRNN 0.924809 0.92587 0.92706
LNN 0.924702 0.92537 0.92656
LAMA-Dense 0.924601 0.92535 0.92643
ExcelFormer 0.923880 0.92379 0.92503
ModernNCA 0.923170 0.92332 0.92440
Extra Trees 0.922104 0.92424 0.92549

你可能已经注意到有些模型的分数相当糟糕。我这次比赛的策略是训练尽可能多的多样化模型,而不是花太多时间调整它们。我觉得下次比赛我应该稍微改变一下这个策略

集成 (Ensembling)

Ridge 和 HC 是本次比赛中最好的集成器,HC 在 CV 上稍好一些,但在公共榜单上差不多。我尝试过使用非线性模型(如 LGBM/CB/不同的神经网络)进行堆叠,但它们比线性方法差得多。

结论

进入前 3 名的公式保持不变:很多模型和一两个技巧(这次是大量的特征工程)。如往常一样,Happy Kaggling!

同比赛其他方案