685. MITSUI&CO. Commodity Prediction Challenge | mitsui-commodity-prediction-challenge
副标题:第 5 名解决方案:保守型 RNN 与波动型 MLP 模型的简单集成
团队成员
我使用了两个模型进行预测:一个 4 天窗口的 RNN 模型和一个单日的 MLP 模型。观察到 RNN 模型产生的输出相对稳定和保守,而 MLP 模型在其预测中表现出更大的波动性。最终预测是这两个模型输出的平均值。此外,原始特征被直接使用 without 额外处理,缺失值统一填充为 -1。在训练期间,我采用了一个结合 MSE 和排名损失(来自 @takeshimorimura 的 notebook)的复合损失函数,在 Kaggle 的 T4 GPU 环境中使用 PyTorch 实现。每个模型大约需要 3-4 分钟进行训练。
未进行特定的特征选择/工程,使用了所有原始变量。缺失值填充为 -1,数据标准化由模型中内置的 LayerNorm 层处理。
我使用了两个独立的模型进行训练和预测:一个 4 天时间窗口的 RNN 模型和一个单日的 MLP 模型。选择短窗口是因为实验表明较长的窗口不会带来性能提升,甚至可能引入噪声。
两个模型都使用相同的复合损失函数进行端到端训练,该函数改编自 takeshimorimura 的基线,并结合了学习率衰减策略。
最终预测结果是两个模型输出的简单平均,旨在利用它们不同的预测特征。
你使用的最重要的技巧是什么?
技巧是构建一个双模型集成系统,并对它们的输出进行平均集成,结合了两个模型的特征。此外,使用混合损失函数来平衡预测的绝对精度和相对排名。
你认为是什么让你在比赛中脱颖而出?
关键区别可能在于对两个具有明显不同预测行为的模型进行了互补集成。训练观察显示,RNN 预测相对稳定和保守,而 MLP 预测波动性更大,有时更准确。这种“保守”和“激进”方法的简单平均比单独使用单个模型产生了更稳健的结果。
你是否发现了任何不适合上述部分的有趣数据关系?
发现在这个任务中,短期历史信息似乎比长期信息对预测更有价值。在不同时间窗口的实验中,较长的窗口没有提高性能,甚至引入了噪声。因此,最终选择了仅 4 天的短窗口,并采用了简单的 RNN。
然而,这种推测主要基于有限的实验观察,其有效性仍需进一步严格验证。