返回列表

3rd Place Solution for the Regression with an Abalone Dataset Competition

606. Playground Series - Season 4, Episode 4 | playground-series-s4e4

开始: 2024-04-01 结束: 2024-04-30 生命科学 数据算法赛
鲍鱼数据集回归比赛 - 第三名方案

鲍鱼数据集回归比赛 - 第三名方案

作者:LuminousC | 排名:第3名

感谢举办方举办这场精彩的机器学习比赛。我很高兴在这里分享我在比赛中的学习经验和心得体会。

背景

业务背景:https://www.kaggle.com/competitions/playground-series-s4e4
数据背景:https://www.kaggle.com/competitions/playground-series-s4e4/data

方法概述

两个对最终排名有贡献的关键因素是:

  • 特征工程策略
  • 模型集成方式

在特征工程方面,我在几个最终子模型中使用了定制版的 OpenFE。更多细节将在后面的部分介绍。

最终模型是由以下6个模型组成的集成:

  • 使用原始特征的AutoGluon选择模型
  • 使用OpenFE*30个特征的AutoGluon选择模型
  • 使用OpenFE*30个特征加上伪标签数据的AutoGluon选择模型
  • 3个子模型(XGB,LGB,CAT)的集成,使用Optuna调优权重
  • 3个子模型(XGB,LGB,CAT)的集成,使用Voting回归器
  • 来自此帖子的LGB模型最佳集成

"代码"论坛中发布的神经网络模型表现不错,但最终我决定不包含它,因为它在本地CV集上没有比其他候选模型表现出显著更好的效果。

提交详情

交叉验证是首要关键

在这个 Playground 系列中,公开排行榜使用了约20%的测试数据,而私有排行榜使用了约80%的测试数据。这通常会导致两个排行榜上的表现不同。因此,建立可靠的交叉验证方法几乎是首要关键。

从AutoFE开始,以谨慎的特征选择结束

在特征工程部分,我对 OpenFE 进行了一些修改,以处理RMSLE指标。当然,你也可以使用 np.log1p 和 np.expm1 来达到同样的效果。

在获得初始特征候选后,最好进行谨慎的特征选择,因为:

  • 减少特征维度以避免过拟合
  • 避免过长的训练时间
  • 使模型对未知样本更具泛化能力

在我的解决方案中,我应用了RFE(递归特征消除)来选择重要特征,限制特征数量为30个,使用逻辑回归。最重要的一点是在交叉验证方式下进行特征选择过程。如果只在单个折叠上应用,选择的特征集可能不够泛化,无法适应不同的数据。通过在多个折叠上平均特征重要性,可以获得更稳定的结果。

尝试过但未成功的想法

  • 用分类模型代替回归模型
  • 对原始数据赋予更多权重而不是合成数据

给初学者的建议

只要准备充分,每个人都有机会在比赛中获胜。以下是一些可能帮助你提升模型性能的一般性指导:

  • 数据研究:特征相关性分析、模型误差分析等方法可以为你带来新的特征或思路。
  • 模型调优:即使是相同的模型,不同的超参数也可能带来巨大的性能提升。
  • 选择和集成:尝试不同的模型组合是直接提升结果的方法之一。
  • 向他人学习:参与Kaggle社区,参与论坛,学习他人的帖子或代码。

祝愿大家在这些比赛中都有美好的旅程。

同比赛其他方案