返回列表

Rank 28 approach - diversity and CV prevail!

657. Playground Series - Season 5, Episode 6 | playground-series-s5e6

开始: 2025-06-01 结束: 2025-06-30 作物智能识别 数据算法赛
第 28 名方案 - 多样性与交叉验证(CV)至上!

第 28 名方案 - 多样性与交叉验证(CV)至上!

作者: Ravi Ramakrishnan (Grandmaster)
发布日期: 2025-07-01
竞赛排名: 28

大家好,

感谢 Kaggle 在过去一个月里提供了一个相当不错的 Playground 系列赛。我相信很多人是第一次使用 MAP@3 指标,我认为这次体验相当棒!我也想向论坛贡献者们的慷慨表示诚挚的感谢,并祝贺高分解决方案的参与者。

我的方法试图在保持交叉验证(CV)与排行榜(LB)关系一致的前提下,尽可能注入多样性。多样性可以通过特征和模型选择来实现,我在流程中选择了这两个要素。详情如下图所示:

方案流程图

特征工程

如图所示,我选择确保以下几点:

  • 不进行特征工程,仅使用原始训练特征,但转换为字符串数据类型。
  • 追加多个训练集 + 多个原始数据集,范围从 1 个训练集 + 0 个原始集,到 2 个训练集 + 19 个原始集。
  • 有限地尝试了二元组(bigrams)+ 三元组(trigrams)以及使用 CuML 的目标编码器(target encoder)。

模型训练

  • 我使用了如下 10 折交叉验证方案:
    KFold(10, random_state = 42, shuffle = True)
  • 我在不同的特征集选项上训练了大量不同的 boosting 树模型,并构建了超过 70 个具有不同特征集的单模型。
  • 我观察到,在类别表示的数据集上,一个参数为 depth = 8, learning_rate = 0.01 的单 XGBoost 模型表现最佳。当我追加 1 个训练数据 + 6-8 个原始数据集时,该模型获得了最佳的 CV 分数。
  • 大多数模型在使用 AUC/Logloss 代理指标进行早停(early stopping)时表现不佳。使用更多的估计器数量(即 10000)有很大帮助,尽管训练时间更长。
  • Catboost 在使用训练特征时表现最差,但作为堆叠(stacker)模型表现非常好。
  • LightGBM 和 LightGBM GOSS 表现中等,为集成学习提供了所需的多样性。
  • 我还使用了一个 Autogluon 流程(1 个训练 + 1 个原始数据),获得了 0.345 的 CV 分数。尽管其单独表现不佳,但我从该流程中使用了一些单模型以增加多样性。

集成学习 (Ensemble)

这里并没有产生显著的收益。我选择了以下方法,成功率各不相同:

  • Autogluon 堆叠器:使用不同的模型选择构建了 3 个 Autogluon 堆叠模型。
  • Torch 神经网络:使用不同的模型选择构建了 4 个堆叠模型。
  • 最终融合:我选择使用 CuML Hill Climber(爬山算法)来融合集成模型和所有单模型。它与任何其他爬山算法相同,但它使用 cupy 和 cudf 而不是 pandas 和 numpy。我有一个用于此的私有设置,并经常在竞赛中使用它。

CV 详情

我将重点介绍我的一些模型 Across 的 CV 分数范围,如下表所示:

模型类型/算法 CV 分数 是否选中融合
公开基准代码 (Starter public work) 0.355 否 (N)
Catboost 0.325 - 0.33 是 (Y)
LightGBM 0.34 - 0.375 是 (Y)
LightGBM GOSS 0.335 - 0.3725 是 (Y)
XGBoost 0.34 - 0.3795 是 (Y)
Torch 神经网络 0.31 - 0.32 否 (N)
Autogluon - 直接应用 0.345 是 (Y)
Autogluon 堆叠模型 0.3810 - 0.3812 是 (Y)
Torch 神经网络模型 0.3790 - 0.3805 是 (Y)
Logistic 融合 0.3815 - 0.3818 否 (N)
CuML Hill Climber 融合 0.3820 - 0.3830 是 (Y)

使用的 GPU

我使用了以下 GPU 套件进行模型训练:

模型类型/算法 GPU
Catboost A5000
LightGBM A5000
LightGBM GOSS A5000
XGBoost A6000 Ada
Torch 神经网络 A5000
Autogluon - 直接应用 L4 - Google Colab
Autogluon 堆叠模型 L4 - Google Colab
Torch 神经网络模型 L4 - Google Colab
Logistic 融合
CuML Hill Climber 融合 4090 本地 GPU

关键心得

  • 坚持你的交叉验证(CV),不要追求没有 CV 支持的融合,保持勤奋,成功将属于你!

结语

祝愿大家在即将到来的竞赛中以及职业生涯中一切顺利!
快乐学习,致以最诚挚的问候!

致敬,
Ravi Ramakrishnan

同比赛其他方案