返回列表

#4 th place solution - robust Hill Climbing

580. Playground Series - Season 3, Episode 24 | playground-series-s3e24

开始: 2023-10-24 结束: 2023-11-13 临床决策支持 数据算法赛
第4名解决方案 - 稳健的爬山算法

第4名解决方案 - 稳健的爬山算法

比赛排名:第4名
作者:aldparis(Kaggle Master)
发布时间:2023-11-14

大家好,

我要感谢Kaggle举办这场精彩的比赛,以及分享了许多技巧(见下文)和优秀模型(见下文)的选手社区。祝贺获奖者们!

也祝贺@kailai,他在公共排行榜上几乎一直保持着第一名的位置,而且他没有过度拟合公共排行榜:只有3次提交。你本应该成为冠军的!

我的策略是避免过度拟合和运气:公共排行榜仅使用了20%的测试数据构建,这是一场五位数的竞争。我想在私有排行榜上进入前10%(就像我在前两次PS比赛中所做的那样,但使用的工具包不同)。

我的解决方案基于@oscarm524在上一场比赛初期提出的一个技巧。他说服我尝试爬山算法但要采用稳健的CV策略。我读过@cdeotte关于爬山算法的文章,这并不是私有排行榜的第一名,而只是公共排行榜的第一名。

所以我就像我在本次比赛初期所解释的那样,使用了带CV的爬山算法,并做了一些小改进(见下文)。

首先,我存储了25个不同的OOF预测结果,来自我自己的或公开的notebook。通过爬山算法和CV,我选择了7个OOF的集成:

  • @paddykb的平均OOF预测结果。他没有使用任何参数来拟合集成,因此不存在过度拟合公共排行榜的风险;所有单个模型都非常强大。
  • @arunklenin在第26版中的LGB、CAT和NN预测。我没有选择该notebook的后续版本,因为我看到@arunklenin的CV集成分数并没有更好(也许我错了)。我用所有原始样本训练了所有模型,每个模型都有OOF输出(以及测试集的预测),因为原始输出中的OOF预测是在没有CV的情况下构建的。我使用了每个模型的OOF预测,而不是使用optuma的OOF预测。
  • 我有一个个人的LGB和两个个人的XGB(无特征工程,添加原始数据集进行训练,删除hearing(left)hearing(right)urine protein,随机网格搜索,对XGB的网格搜索使用GPU,对20个最佳模型使用4折和RepeatedStratifiedKFold)

我用5折训练爬山算法,并注意:

  • 当一个模型在训练折上提高了AUC分数时,验证集上也有分数提升。
  • 这7个模型在所有验证折上都提高了分数
  • 我还用另外5折(不同的种子)重复了这个实验以确保万无一失。
    爬山算法中前三个模型(系数最强)的顺序总是相同的:@paddykb第一,然后是@arunklenin的LGB和NN

关于本次比赛中爬山算法的改进
在我为爬山算法和CV添加并行计算后,@siukeitin帮助我使用numpy优化了爬山算法的AUC计算。

再见,祝你们玩得开心!

同比赛其他方案