返回列表

Rank-3 Public Rank-5 Private Approach

664. Playground Series - Season 5, Episode 8 | playground-series-s5e8

开始: 2025-08-01 结束: 2025-08-31 信贷风控 数据算法赛
公开榜第 3 名 私有榜第 5 名方案 - Kaggle 解决方案

公开榜第 3 名 私有榜第 5 名方案

包含 470+ 候选单模型的大型集成,涉及多样的特征集和模型参数

作者: Ravi Ramakrishnan (Grandmaster)
竞赛: Playground Season 5-Episode-8 (Playground 系列第 5 季第 8 集)
发布日期: 2025-09-01
最终排名: 第 5 名

大家好,

问候!

我非常高兴能够展示我在 Playground 第 5 季第 8 集竞赛中排名第 5 的解决方案和 writeup。我想向 Kaggle 提供本次竞赛以及公共论坛上丰富多样的分享的 fellow 参与者表示诚挚的感谢。我的最终解决方案是以下 kernels 中提出的想法与我自己的输入的结合 -

请查阅下方的解决方案方法 -

特征工程

  • 我基于给 ChatGPT 的简单提示创建了特征并使用它们 - 没有任何特征在大范围内有效!
  • 我使用了 2-gram、3-gram 和 4-gram 特征,并将它们作为输入,原始数据作为行和列。为了避免内存限制,我避免了将 4-gram 特征用于原始数据作为列的情况。
  • 正如许多公共 kernels 所示,我将所有类别列作为字符串使用,并在交叉验证期间使用基于树的内部编码器来处理它们。
  • 我在 fold 内部使用均值和计数编码器作为主要特征。我还在 fold 外部使用计数编码器,将 train + test set 作为一个组合实体。我观察到这是一个数据泄漏不会损害模型的罕见例子。这可以说明如下:
(
    pl.concat( [ train.select(pl.col(col, "id")), test.select(pl.col(col, "id"))] , how = "vertical_relaxed" ).
    group_by(pl.col(col)).
    agg("id").count()
)
  • 我使用 polars 进行特征工程,并使用 parquet 文件和 hive 分区存储结果数据集。这有助于我轻松快速地检索信息。每个分区有 50,000 行。我还 wherever applicable 使用向下转换技术减少了内存。

交叉验证方案 (CV-scheme)

  • 我使用了 state = 42 的分层 5 折交叉验证方案。
  • 我所有的模型运行在整个过程中都遵循相同的交叉验证方案。
  • 我没有在此管道中进行任何完全重新拟合和随机状态调整,而是转而使用具有不同特征的模型。

离线模型训练 - 单模型

  • 我使用了提升树、MLP、TABM 模型,使用了一系列特征,始终将原始数据作为行/列。
  • 我还为这些模型创建了伪标签,并使用/不使用伪标签训练了 2 阶段管道。
  • 我还在原始和编码特征上训练了 1 个 Autogluon 模型,并仅将结果包含在伪标签中 - 这些模型未用于任何后续步骤。

离线模型训练 - 第 2 阶段集成

  • 我在此阶段使用了 Autogluon。我训练了 7 个 autogluon 模型,运行时间为 16 小时,使用不同的特征和模型作为堆叠集成。
  • 我在此处尝试了其他 AutoML 工具如 H20.ai,但 Autogluon 表现要好得多,我只在最终阶段集成中使用了 Autogluon。
  • 这是集成中非常有效的元素,尽管提供了巨大的 CV 提升。

离线模型训练 - 第 3 阶段集成

  • 我使用几个候选模型作为输入进行了爬山法 (hill-climb)。我设计了 10 个爬山法,使用负权重和正权重作为选项。
  • 我还使用了 5 个逻辑回归,使用来自单模型和第 2 阶段集成的几个模型候选者。
  • 我的最终提交是爬山法和逻辑回归结果的 50-50 混合。
  • 我的替代提交是带有 320 个模型候选者的第 2 阶段 Autogluon 的结果。我的 CV 分数在此处最大化,我将此候选者用作最终提交。

交叉验证结果

without 伪标签

模型算法 CV 分数范围
XGB 0.97161 - 0.97645
LGBM gbdt 0.9712 - 0.9762
LGBM goss 0.9713 - 0.97625
Catboost 0.9707 - 0.9751
MLP 0.9728 - 0.9741
TABM 0.9731 - 0.9758

带伪标签

模型算法 CV 分数范围
XGB 0.9718 - 0.97652
LGBM gbdt 0.97125 - 0.9763
LGBM goss 0.9714 - 0.9763
Catboost 0.9708 - 0.97545

集成

模型算法 CV 分数范围
Autogluon 0.97656 - 0.97745
Hill-climbers (爬山法) 0.97676 - 0.97746
Logistic Regression (逻辑回归) 0.97635 - 0.9773

GPU 配置

模型算法 GPU
Autogluon L4 Colab
Hill-climbers (爬山法) L4 Colab
XGB A6000 Ada, A6000, A5000, 4090
LGBM 4090
Catboost L4, A100
MLP T4 X 2
TABM T4 X 2

最终评论

祝您未来的竞赛、个人和职业发展一切顺利!在接下来的 playground 剧集中再见!

致敬,
Ravi Ramakrishnan

同比赛其他方案