返回列表

3rd place solution - two stage flip augmentation stacking with code

631. UM - Game-Playing Strength of MCTS Variants | um-game-playing-strength-of-mcts-variants

开始: 2024-09-05 结束: 2024-12-02 游戏AI 数据算法赛
第三名解决方案 - 两阶段翻转增强堆叠

第三名解决方案 - 两阶段翻转增强堆叠(附代码)

作者: senkin13 (Grandmaster)
竞赛排名: 第 3 名
发布时间: 2024-12-03

感谢 UM 组织者和 Kaggle 团队为我们提供如此有趣的比赛。本次比赛没有数据泄露,CV 与 LB 相关性稳定,且有很多改进的可能性,我非常享受探索无限可能性的精度边界。

概述

我认为关键在于数据增强和构建稳定的 CV-LB 流程(LB 更重要)。私有排行榜几乎没有波动,表明公共和私有数据集的分布应该是一致的。

解决方案流程图

数据增强

翻转 agent1-agent2 对为 agent2-agent1,将 AdvantageP1 改为 1-AdvantageP1,将 utility_agent1 改为 -utility_agent1,其他保持不变。

交叉验证

按 GameRulesetName 进行 StratifiedGroupKFold,将 utility_agent1 的少数类别修改为邻近类别。

特征工程

我从这个优秀的 Notebook 中添加了一些特征:https://www.kaggle.com/code/yunsuxiaozi/mcts-starter
我还添加了 EnglishRules 的 TF-IDF-SVD 特征,该特征需要找到更好的 max_features 参数,我通过 LB 分数尝试了很多次。

特征选择

我喜欢使用零重要性特征选择,以丢弃那些如果目标发生偏移会变化太大的特征。

超参数调优

我使用 Optuna 搜索 LightGBM 和 CatBoost 的最佳超参数。

模型

我使用两阶段建模,第一阶段使用翻转增强数据作为训练数据来预测原始训练数据和测试数据,然后生成 OOF 预测作为第二阶段的特征。

集成

我的最终提交是混合 LightGBM 和 CatBoost,并进行 3 种子的平均集成。

后处理

最终预测均值低于原始均值,与公共 LB 一致,所以我乘以系数 (1.12),可以使 LB 分数提高 0.002。

无效尝试

LudRules TF-IDF, BERT 嵌入,带有更多 agent1-agent2-game 组的伪标签,神经网络。

同比赛其他方案