返回列表

2nd Place Solution - 7 models, but 1 was also enough

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

开始: 2025-11-01 结束: 2025-11-30 信贷风控 数据算法赛
第二名解决方案 - 7 个模型,但 1 个也足够了

第二名解决方案 - 7 个模型,但 1 个也足够了

作者: AngelosMar
发布日期: 2025-12-01
竞赛排名: 第 2 名

我最好的解决方案是 7 个模型的 Ridge 集成,包括 5 个 LGBM、1 个 TabM 和 1 个 RealMLP。我的另一个提交作品(最好的单个 LGBM 模型)也获得了第二名。该模型的简化版本可以在这个笔记本中找到。

特征工程

除了初始列之外,我为所有基数(cardinality)> 7 的初始列添加了以下特征:

  • 目标编码 (Target encoded)
  • 计数编码 (Count encoded)
  • 使用原始数据集目标进行目标编码

获得高交叉验证(CV)分数关键在于以不同方式对高基数列 annual_incomeloan_amount 进行离散化/分箱,然后再进行目标编码。以下每种方式都有助于提高 CV:

  • 分位数分箱 (quantile binning)
  • 均匀分箱 (uniform binning)
  • 使用 round// (整数除法) 运算符
  • 使用 .astype(int) 丢弃小数部分

此外,我还包含了所有数值列的数字特征以及某些数值列的数字组合特征。
最后,我添加了训练数据与原始数据之间的计数比率(每个值与原始数据相比是如何过采样或欠采样的)。

未能提高 CV 的操作包括交互特征以及将原始数据作为行添加。

参数

LGBM 模型通过强正则化参数(低 max_depthcolsample 等)得到了很大改进。

learning_rate=0.01
max_depth=4,
subsample=0.5
colsample_bytree=0.2
lambda_l2=15.0
lambda_l1=10.0
    

最佳集成

模型 5 折 CV 备注
LGBM 0.92813 最佳单模型
LGBM 0.9281 每折添加原始数据作为额外行
LGBM 0.9278 每折添加原始数据作为额外行,较少特征
LGBM 0.9277 Logits 初始化自基于原始数据训练的 TabPFN,想法来自这里
LGBM 0.9276 Logits 初始化自基于原始数据训练的 Autogluon (使用 preset='extreme' 选项),想法来自这里
TabM 0.9277 -
RealMLP 0.9271 -

结论

恭喜 @mahoganybuttstrings 获得冠军。感谢所有在讨论和笔记本中做出贡献的 Kaggle 参与者。探索 Playground 竞赛既有趣又有教育意义。

同比赛其他方案