首先,我要向所有的组织者、参与者以及你,读者,表示衷心的感谢!我必须承认,获得第 8 名涉及到一些运气成分。对于我的模型,我只是简单选择了 AutoGluon,但我仍然想与大家分享和讨论我的想法。
在我第一次运行 AutoGluon 时,我尝试使用 GPU,但似乎没有被利用——也许 AutoGluon 判定它实际上会减慢速度。在那次初始运行中,由于时间限制,训练了 17 个基础模型和 13 个堆叠模型。交叉验证(CV)得分为 0.985,排行榜(LB)得分为 0.98522。令人惊讶的是,私有分数结果是 0.98506,这让我有点意外。
之后,我注意到数据中有不少噪声,例如分类特征中存在数值和测试集中没有的奇怪单词。我假设只有单字符的分类特征不是噪声,并将其他特征设置为 NaN,让 AutoGluon 来处理它们(考虑到基于树的模型可以自然地处理 NaN,我认为这可能比手动插补更好)。
在进行这些调整后,我增加了 AutoGluon 的时间限制,并在学校提供的两个 Gold 5320 CPU 上运行了三天(非常感谢他们!)。这次,训练了 19 个基础模型和 22 个堆叠模型,CV 得分达到 0.9581,LB 得分提高到 0.98525,私有得分达到了个人最佳的 0.98507。
后来,我发现一个 XGBoost 模型花费了整整两天时间来训练😅,所以我决定排除 XGBoost(其 CV 得分为 0.9846)进行完整重新训练。这次最终训练花费了五天半,产生了 98 个基础模型和 64 个堆叠模型(由于集群问题,一些堆叠模型丢失了)。CV 得分保持在 0.9581,LB 得分略微增加到 0.98528,但私有得分略微下降到 0.98507。我怀疑 XGBoost 可能仍然具有重要意义,并且更复杂的模型可能引入了一些过拟合。
最后,再次感谢阅读!
P.S. 老实说,鉴于样本数量巨大,我也对排行榜的变动感到惊讶。你们怎么看?