返回列表

4th Place Solution - Ridge Ensemble of 12 Models

651. Playground Series - Season 5, Episode 5 | playground-series-s5e5

开始: 2025-05-01 结束: 2025-05-31 大众健身 数据算法赛
第四名解决方案 - 12 个模型的 Ridge 集成

第四名解决方案 - 12 个模型的 Ridge 集成

作者: AngelosMar | 发布日期: 2025-06-01 | 排名: 第 4 名

首先,祝贺大家的努力!在我的第 4 次 playground 比赛中获得第 4 名对我来说真的是一个非常惊喜。下面我将提及我方法中的一些内容。

这次比赛的一个棘手之处是 CV - LB 关系。更好的 CV 往往会导致更差的 LB,这一点从一开始就很明显。有时,我觉得这种相关性更像是负相关而不是正相关,在整个比赛过程中,我从未能够取得好的 LB 分数。在某个时刻,我决定完全忽略 LB,只专注于优化 CV 分数。事实证明这是一个正确的决定!

我的最终两个提交具有最高的 CV 分数,也获得了最好的私有 LB 分数。它们是:

  • Ridge 集成(12 个模型):CV = 0.05868, 公共 LB = 0.05698, 私有 LB = 0.05846, 第 4 名
  • Ridge 集成(11 个模型):CV = 0.05870, 公共 LB = 0.05688, 私有 LB = 0.05847, 本来会排在第 7-10 名左右。

获得第 4 名的集成包括 3 个'2 级'模型(基于我其余 OOF 预测训练的 extra trees, neural network 和 LGBM)。当我这样做时,我不确定混合 1 级和 2 级模型是否是一个好的做法,但最终它为我赢得了第 4 名所需的额外小数点后第五位精度。为了从 30+ 个 OOF 预测中选择最终模型用于我的 Ridge 集成,我使用了带有交叉验证的序列特征选择器。

下面我将提及我处理过的一些单独模型,其中大多数是最终集成的一部分。除了 Autogluon(我认为它使用 8 折)和一个我用 15 折训练的单 XGBoost 外,所有模型都使用相同的 5 折进行训练。

  • Autogluon

Autogluon 训练了 15 小时,没有特征工程,拥有最好的单模型 CV = 0.058800,但同时公共 LB 分数令人失望,为 0.05712。在我的两个最终集成中,该模型的权重 > 0.5。我认为它是我的解决方案的关键部分。

  • GBDT

特征工程对我的 GBDT 模型完全没用,所以我只使用了初始特征。
每个类型模型达到的最佳 CV 分数为:
- Catboost: CV = 0.05916
- XGBoost: CV = 0.05937
- 带有 'goss' 选项的 LGBM: CV = 0.05965

我训练了上述模型的变体,其中一些我添加了原始数据,另一些我预测了转换后的目标,如 Calories 除以 Duration。我还训练了 2 个带有嵌套交叉验证的 XGBoost 模型,在内层折中使用线性回归。
其中一个使用线性回归的预测作为特征,另一个预测线性回归的残差。
在另一个 XGBoost 中,我使用了每样本权重选项,给 Duration 与 Calories 散点图中表现为异常点的一些点赋予很大的权重。

  • 线性回归 (Linear Regression)

线性回归很强!我最好的模型 CV = 0.05976,使用了约 400 个特征。它是我在比赛期间发布的 这个 notebook 的改进版本。
这是我在本次比赛中最喜欢的模型。还要感谢 @dantetheabstract 提供了一个不错的线性回归 starter notebook

  • 神经网络 (Neural Networks)

我所有 NN 的架构都基于 @masayakawamata这个 notebook。感谢这个 notebook!
我在 这个 notebook 中发布了我最好的 NN (CV = 0.05954),并在 这个 评论中发布了更多关于训练的细节。还要感谢 @cdeotte 提供了一个不错的 starter NN notebook

我的集成还包括一个 NN,我将问题视为超过 277 个标签的多标签分类。该模型的最终预测是平均价值,权重为预测的概率分布。

我尝试的一些其他 NN 将所有变量视为类别变量,并使用独热编码或嵌入,但通常效果不如其他模型好。尽管初始特征的唯一值数量非常少,但将它们视为类别变量效果不是很好。

同比赛其他方案