返回列表

4th place solution - preprocess + automl🚀

629. Playground Series - Season 4, Episode 11 | playground-series-s4e11

开始: 2024-11-01 结束: 2024-11-30 健康管理与公共卫生 数据算法赛
第 4 名解决方案 - 预处理 + 自动机器学习🚀

第 4 名解决方案 - 预处理 + 自动机器学习🚀

作者: Jack Lee
发布时间: 2024 年 12 月 1 日
竞赛排名: 第 4 名

我很高兴能获得第四名!虽然我认为这其中包含运气成分,但我仍然想分享我的解决方案。

预处理

在进行了一些 EDA(探索性数据分析)后,我注意到数据中存在很多不合理的噪声。基于 @adyiemaz出色 Notebook中的数据预处理方法,我做了一些修改,将不合理的数据设置为 NaN(因为 AutoML 框架可以自动处理 NaN 值)。例如,我认为像"Less than 5 hours"(少于 5 小时)这样的城市名称(我认为应该描述睡眠时间)是不合理的。在我的实验中,这一更改在我的 CV(交叉验证)、公共 LB(排行榜)和私有 LB 中都带来了更好的分数。

自动机器学习 (AutoML)

由于时间限制,我没有进行非常复杂的模型选择。我认为 AutoML 是一个减少工作量同时仍能取得好成绩的绝佳选择。最终,我使用了 AutoGluonLightAutoML,并对它们的结果进行了简单的等权融合 (blending)。总的来说,上次当我获得第 8 名时,我观察到盲目融合和过度拟合公共 LB 会导致私有 LB 分数较低。在这次比赛中,我仍然主要关注 CV 分数。

AutoGluon

AutoGluon 提供了许多经过预测试的超参数组合以及表现良好的 bagging+stacking 技术。虽然它的 CV 有时可能过于乐观,但它在这次比赛中表现良好。我使用了 AutoGluon 团队提供的2024 年 200 个超参数集。感谢他们的工作!不过回想起来,它的私有 LB 分数略低于 1.2.0 版本的 experimental_quality 预设分数,但在 CV 和公共 LB 上表现更好。

LightAutoML

与 AutoGluon 相比,LightAutoML 提供了更多基于深度学习的模型。我使用此设置来调用所有模型:general_params = {"use_algos": [['lgb_tuned', 'cb_tuned', 'mlp_tuned', 'dense_tuned', 'denselight_tuned', 'resnet_tuned', 'snn_tuned', 'node_tuned', 'autoint_tuned', 'fttransformer_tuned']]}。它在公共和私有 LB 上的表现略优于 AutoGluon,但在 CV 上略差,这可能是由于前面提到的 AutoGluon 的 CV 分数过于乐观。

最后,我想感谢我的学院提供 CPU 计算支持,以及 Kaggle 平台、所有参与者和阅读本文的您!

同比赛其他方案