430. March Machine Learning Mania 2021 - NCAAM | ncaam-march-mania-2021
感谢 Kaggle 举办了这场疯狂三月 2021 比赛!我在 Kaggle 上获得了我的第一个奖项,在这场比赛中获得了个人金牌 🥇,最终排名第3。
我已经在这个 Kaggle Notebook 中公开了我的解决方案。
我从一个公开的 Notebook 代码开始,该数据集包含的特征仅从 Kaggle 为比赛提供的最少数据文件中提取。这不包括 Massey Ordinals 数据。我的目标是将注意力集中在模型调优上,而不是数据整理。
我使用 PyCaret 库创建了一个分类模型。尝试了各种参数以在模型训练期间改善 LogLoss。最终,我启用了 PyCaret 的特征工程、缺失数据插补和 Boruta 特征选择参数。所有这些设置的组合在减少模型训练期间的 LogLoss 指标方面产生了显著效果。
利用 PyCaret 的功能,我进行了 10 折交叉验证,并使用 Extra Trees、LDA 和 NB 线性回归算法混合(集成)了三个模型。我使用 PyCaret 内置的网格搜索设置对模型进行了 10 次迭代调优,但专门针对 LogLoss 进行了优化。最后,我使用 PyCaret 的函数完成了模型定型,在所有数据上进行训练,而不仅仅是训练/测试数据,这有助于模型的泛化。
即使使用 GPU 加速,Catboost 和 LightGBM 训练模型的速度也非常慢,而且指标没有改善,所以我决定使用更快的经典算法。
请查看 Notebook 了解在训练期间提供最低 LogLoss 指标的设置。不过,我相信集成其他各种算法并进行更多次迭代调优,可能会在模型训练期间进一步降低 LogLoss。
请注意,我没有手动覆盖最终模型提交的任何预测结果。我想看看一个泛化模型在总共 707 名参与者中的表现如何。
如果您有任何困惑或问题,请告诉我。很高兴为您解答!