627. Playground Series - Season 4, Episode 10 | playground-series-s4e10
大家好,
感谢 Kaggle 带来了一场精彩的 Playground 系列分类任务 episode!我也想向本月所有参赛者和论坛贡献者致以诚挚的感谢,感谢他们的精彩贡献。我还要感谢社区如此很好地接纳了我的成果文件!请在下方找到我在本次竞赛中的方法及相关撰写报告 -
我在本次竞赛中的整体方法比最近几期的 Playground 系列要简单,因为我依赖的特征数量较少,而在本期比赛中更多地依赖于深思熟虑的混合 (blending) 和堆叠 (stacking)。我认为较小的数据量可能会增加过拟合的几率,因此保留了一种简单的方法,使用提升树 (boosted tree) 和神经网络 (NN) 模型选项,不进行盲目混合,并仔细考虑数据泄露和交叉验证 (CV) 方案分析。
我在本次挑战中使用了一个简单的分层 10 折交叉验证 (Stratified 10-fold CV) 方案,随机种子 (random state) = 42,并在所有模型中统一保留此方案。
我所选提交方案的整体方法如下图所示 -

我在本次竞赛中的时间管理如下 -
我想特别感谢这个 Kernel - 它在最后冲刺排行榜阶段对我帮助很大。
我的另一个提交完全是我自己的作品,不包括公共 Kernel 的成果文件。我相信我在竞赛中的贡献,希望我的作品能脱颖而出,我很高兴我的信念确实实现了!两个提交的 CV 与排行榜 (LB) 关系如下 -
| 提交详情 | CV 10 折分层 K 折 |
公共排行榜 | 私有排行榜 |
|---|---|---|---|
| 我的独立工作 + 公共工作 - 与 torch NN 堆叠 | 0.97002 | 0.97393 | 0.96902 |
| 我的独立工作,不含公共工作 | 0.969954 | 0.97353 | 0.96899 |
我在特征库中依赖了 5 个特征集,类似于我的 TPS-2024 年 7 月 流程。我设计了一系列特征,包括大量暴力生成的二次特征和不同的模型参数,但没有什么比使用所有字符串值的简单 Catboost 模型更有效。我推测这个数据集的设计方式可能不适合二次特征。我在所有特征集中都使用了原始数据。
根据 CV 分数,我最终从 5 个集合中使用了 3 个特征集,并尽可能选择了多样化的模型与神经网络进行堆叠。我丢弃了具有 50+ 特征的特征集,因为 CV 结果一点也不令人鼓舞。在窥探了我单个模型的私有分数后,我很高兴我拒绝了所述特征并依赖于 simplicity。我选择的特征集包含 15-25 个特征,所有特征都是通过对现有特征进行简单操作创建的,没有数据泄露。
我想很多初学者会阅读这篇帖子,因此希望单独添加一节关于我在此系列中提交作品的看法 -
我衷心祝愿大家排灯节 (Diwali) 快乐,希望这个光明和欢乐的节日能为你们在 Kaggle 和其他生活领域带来很多幸福!
在该系列的下一期节目中见到大家,祝一切顺利!
此致,
Ravi Ramakrishnan