676. Playground Series - Season 5, Episode 10 | playground-series-s5e10
感谢大家参与这场有趣的 Playground 竞赛。在这次 Playground 竞赛中,我没有像过去那样创建数百个 diverse 模型(并进行 stacking 和 hill climb)。我只创建了 2 个强模型及其多种变体。即 XGB 和 TabM。
在我的最终提交中,我包含了多个 starter XGB notebook 的变体,见这里。此外,我添加了多个 TabM 的 OOF 作为新特征,从而将(部分)XGB 变成了 stage 2 meta (stacking) 模型。
在我的最终提交中,我包含了 @masayakawamata 的 TabM 变体,见这里。具体来说,我将 TabM 转换为预测原始数据集生成函数上的残差(类似于我的 XGB starter)。我还包含了 @yunsuxiaozi 的 TabM,见这里(我将这些 TabM 用作 XGB 的 OOF 特征)。
神经网络受益于使用更多数据训练以及混合多个自身副本(不同种子),所以我用 100 折重新训练了所有 TabM。我也用相同的 100 折训练了 XGB,以便我可以将 XGB stack 在 TabM 之上。
在用 100 折重新训练原始的 2 个 TabM 以及另一个预测残差的变体之后。我用这些 OOF 作为新特征训练了我的 XGB。
在训练了 2 个 XGB, 3 个 TabM, 以及 2 个 stack 在 3 个 TabM 之上的 XGB 之后,我用 Hill Climbing 混合了这 7 个模型。
我通过用伪标签测试数据(来自我的 7 模型 ensemble)重新训练 TabM 提升了 CV 和 LB。(即:首先构建没有伪标签的 7 模型 ensemble,然后伪标签测试集,然后用添加了伪标签测试集的数据重新训练 TabM,最后使用伪标签 TabM 构建一个新的更好的 7 模型 ensemble)。
最后,我将我的(7 模型)ensemble 与最佳 public notebook 进行了 50%/50% 的混合(用于 1 个最终提交,而另一个最终提交仅包含我的 7 模型 ensemble)。