最终得分:公共排行榜:0.05536 | 私有排行榜:0.05564
方法:3 个 HC 集成(汇集约 100 个不同模型)+ 1 个岭回归集成的简单平均。
关键洞察:相信你的交叉验证 (CV),但也要仔细评估过拟合风险。拥有 70+ 个爬山算法 (Hill Climbing) 集成变体,每个都有不同的模型组合和权重,我面临关键决策:是相信最低的 CV 分数还是对冲过拟合风险?
我有大约 20+ 次提交,公共排行榜得分均为 0.05539,CV 分数范围从 0.055822 到 0.055833。所有这些提交都能确保我获得 0.05562 或 0.05563 的私有排行榜分数。低于 0.055800 的较低 CV 分数来自更激进的 HC 优化——来自 30+ 模型的集成,具有精细调整的负权重,范围从 -0.30 到 +0.65,允许纠正相关误差并在 1e-7 容忍度水平上进行改进。

我的爬山算法集成具有多样性,包括:
- XGBoost 变体(原始数据、基于残差、特征丰富、目标编码);
- LightGBM 变体(Optuna 调优、基于残差、统计特征);
- CatBoost 变体;
- 神经网络(TabM, RealMLP, FastAI, PyTorch);
- 树集成(Random Forest, Extra Trees, YDF)。
这创造了捕捉数据不同方面的预测,减少了相关性并提高了泛化能力。
从这次比赛中我学到,较低的 CV 并不总是意味着更好——背景和过拟合风险很重要。获胜的提交在我的武器库中,但它们似乎太保守了。
发布的最终解决方案是 4 个集成的简单平均(约 40 行代码)——3 个 HC 贪婪集成(每个 21-26 个模型,带有负权重)和岭回归堆叠集成,无后处理或校准。所有袋外预测 (OOF) 和测试预测均使用 7 折交叉验证 (CV) 生成,保存为 NumPy 数组,并使用基本 NumPy 操作组合。
感谢发布强大公开 Notebook 的 Kaggle 竞争者 (@cdeotte, @masayakawamata, @mahoganybuttstrings, @mikhailnaumov)。我解决方案的多样性来自于测试许多不同的想法以及 @tilii7 和 @siukeitin 发布的讨论帖子。