664. Playground Series - Season 5, Episode 8 | playground-series-s5e8
副标题:特征工程加上模型多样性效果最佳
本次竞赛是一个使用银行营销数据集的二分类任务。
目标:预测客户是否会订阅银行定期存款。
数据大小:训练集约 750,000 行 × 16 个特征,测试集约 250,000 行 × 17 个特征。
结果:我在私有排行榜上进入了前 25 名。
起初,我的排行榜(LB)得分约为 0.97555。经过广泛的特征工程、数据增强和模型实验,我能够显著改善结果并最终达到该排名。
最初,我手动创建了大约 30 个新特征。
后来,我发现了一个非常有用的 Notebook,作者是 Chris Deotte,这启发我进行了更复杂的变换(谢谢你 Chris,我一直向你学习)。
利用他的想法,我创建了超过 447 个新特征,将我的 LB 提升至 0.97717,CV(交叉验证)提升至 0.976。
由于数据集不平衡(87% 为类别 1,13% 为类别 0),我应用了合成数据生成(synthcity)来过采样少数类。这提高了模型的鲁棒性并减少了对多数类的偏差,但这对我并没有生效。
我使用了多个模型并进行了几轮训练:
基础模型:
调优策略:
交叉验证 (CV):
我尝试了不同的折数:
我总是更信任我的 CV 结果而不是 LB,这帮助我避免了排行榜过拟合并指导了我的模型选择,最好的 CV 结果是逻辑回归 AUC: 0.976979405561156。
第一种方法(简单集成):
最初只使用了 2 个模型(LGBM + XGB)。
在调整超参数重新训练后,得分有所提高。
第二个 Notebook( larger ensemble):
这达到了 CV 0.9758 和 LB 0.97683。
结合了以下预测结果:
全部使用逻辑回归 (LR) 进行堆叠。
我还应用了加权混合:
总共有大约 10 组预测结果在最终解决方案中进行了混合。
大数据集:训练计算成本很高,因此我将工作流分成了 8 个独立的 Notebook:
时间管理:需要仔细安排时间表, overnight 运行多个种子和长时间实验。
公共排行榜 (Public LB): 0.97733
私有排行榜 (Private LB): 前 25 名 🎉
特别感谢 Chris,每天都向他学习,尤其是特征工程的想法启发了我解决方案的很大一部分。