返回列表

#5 Solution | five models + LADRegression

557. Playground Series - Season 3, Episode 16 | playground-series-s3e16

开始: 2023-05-30 结束: 2023-06-12 生命科学 数据算法赛

#5 解决方案 | 五个模型 + LADRegression

大家好,

首先,我要衷心感谢Kaggle举办本次Playground系列比赛。在本文中,我将简要介绍我的解决方案,大部分内容都可以在我的 notebook 中找到。

预处理

我完全没有对数据进行任何预处理。

特征工程

比赛中有很多出色的特征工程方案。然而,经过测试,只有以下四个特征能够显著提升我的模型性能:

X['Meat Yield'] = X['Shucked Weight'] / (X['Weight'] + X['Shell Weight'])
X['Shell Ratio'] = X['Shell Weight'] / X['Weight']
X['Weight_to_Shucked_Weight'] = X['Weight'] / X['Shucked Weight']
X['Viscera Ratio'] = X['Viscera Weight'] / X['Weight']

需要注意的是,上述特征是由 @pandeyg0811这篇讨论帖 中提出的。

建模与集成

我采用了10折交叉验证框架,使用了以下五种模型:

  • GradientBoosting
  • HistGradientBoosting
  • LightGBM
  • XGBoost
  • CatBoost

然后,我使用 LADRegression 来集成这五个模型的预测结果。需要特别说明的是,在集成前,我将五个模型的预测结果四舍五入到最接近的整数(这略微提升了交叉验证的分数)。接着,我使用不同的随机种子多次运行上述框架,并通过计算每个测试集 id 的预测结果的众数来进行最终集成。

未生效的尝试

  • 我尝试了多种特征工程方法(部分是我自己设计的,部分来自讨论区的建议),但只有上述四个特征能够有效提升模型性能。
  • 我还尝试了 FLAML 自动机器学习框架,但由于缺乏使用经验,无法构建出足够优秀的模型。

总结

在本次比赛中,我的本地交叉验证分数与公开排行榜和私有排行榜的结果都高度一致。因此,核心经验是:请相信你的交叉验证。

同比赛其他方案