606. Playground Series - Season 4, Episode 4 | playground-series-s4e4
感谢举办方举办这场精彩的机器学习比赛。我很高兴在这里分享我在比赛中的学习经验和心得体会。
业务背景:https://www.kaggle.com/competitions/playground-series-s4e4
数据背景:https://www.kaggle.com/competitions/playground-series-s4e4/data
两个对最终排名有贡献的关键因素是:
在特征工程方面,我在几个最终子模型中使用了定制版的 OpenFE。更多细节将在后面的部分介绍。
最终模型是由以下6个模型组成的集成:
"代码"论坛中发布的神经网络模型表现不错,但最终我决定不包含它,因为它在本地CV集上没有比其他候选模型表现出显著更好的效果。
在这个 Playground 系列中,公开排行榜使用了约20%的测试数据,而私有排行榜使用了约80%的测试数据。这通常会导致两个排行榜上的表现不同。因此,建立可靠的交叉验证方法几乎是首要关键。
在特征工程部分,我对 OpenFE 进行了一些修改,以处理RMSLE指标。当然,你也可以使用 np.log1p 和 np.expm1 来达到同样的效果。
在获得初始特征候选后,最好进行谨慎的特征选择,因为:
在我的解决方案中,我应用了RFE(递归特征消除)来选择重要特征,限制特征数量为30个,使用逻辑回归。最重要的一点是在交叉验证方式下进行特征选择过程。如果只在单个折叠上应用,选择的特征集可能不够泛化,无法适应不同的数据。通过在多个折叠上平均特征重要性,可以获得更稳定的结果。
只要准备充分,每个人都有机会在比赛中获胜。以下是一些可能帮助你提升模型性能的一般性指导:
祝愿大家在这些比赛中都有美好的旅程。