返回列表

Tatru in MITSUI&CO. Commodity Prediction Challenge

685. MITSUI&CO. Commodity Prediction Challenge | mitsui-commodity-prediction-challenge

开始: 2025-07-24 结束: 2026-01-16 量化投资 数据算法赛
```html Tatru 团队在 MITSUI&CO. 商品预测挑战赛中的方案

Tatru 团队在 MITSUI&CO. 商品预测挑战赛中的方案

融合 XGBoost 与 TensorFlow DNN,通过优化特征和集成学习实现稳健的商品价格预测。

作者: Alejandro Sierra Serna
排名: 第 7 名 (Private Leaderboard)
得分: 0.506
发布时间: 2026-01-23

A1. 关于你/你的团队

  • 比赛名称: MITSUI&CO. 商品预测挑战赛
  • 团队名称: Tatru
  • Private Leaderboard 得分: 0.506
  • Private Leaderboard 排名: 第 7 名

团队成员:

A2. 团队背景

  • 学术/职业背景: 工业工程师,SAP 销售与分销顾问,营销管理专家,SAP 开发人员,云计算,开源 Web,React Native 移动应用开发以及数据科学。
  • 与此比赛相关的先前经验:
    • 拥有使用机器学习技术进行数据分析和预测建模的经验,用于确定制造业 B2B 谈判的最佳价格,并使用 SAP 销售数据进行销售分析。
  • 参赛动机: 探索数据科学领域的新挑战,并将我的技能应用于现实世界的问题。
  • 花费时间: 10 天用于探索、开发模型和进行超参数调整。
  • 组队情况: 本次比赛仅我一人。
  • 角色与贡献: 独立贡献者,负责数据预处理、特征工程、模型开发和评估。我也利用这次机会教我的弟弟一些机器学习和实验的基础知识。

A3. 摘要

建模过程始于彻底的数据探索,并开发了一个最小的基线模型,以确保管道和提交流程按预期工作。在建立此基础后,我实施了一个全面的超参数优化工作流程,比较了三种主要策略:XGBoost(用于稳健的表格建模)、TensorFlow 深度神经网络(用于捕捉复杂模式)以及结合两者优势的加权集成。主要进行了三次提交:一次仅使用 XGBoost,一次仅使用 TensorFlow,一次为两者的集成。虽然 XGBoost 在本地验证中表现最佳,但仅使用 TensorFlow 的模型在实际 Kaggle 排行榜上取得了最佳结果,这可能是由于其更好的泛化能力。特征工程和预处理经过精心设计,以处理缺失值、缩放特征并创建时间感知分割。最终模型选择基于验证性能,将表现最佳的配置提交参加比赛。所有实验和模型训练均使用 Python 进行,利用 XGBoost、TensorFlow、Optuna 和 MLflow 等库进行跟踪和复现。

A4. 特征选择 / 工程

  • 最重要的特征:
    • 与商品期货(例如 LME 金属)、外汇汇率和美国股票价格相关的特征最具预测性。技术指标(如移动平均线、波动性)和跨资产相关性在特征重要性分析中也排名很高(请参阅 EDA 笔记本中的特征重要性图)。
  • 特征选择方式:
    • 初步选择基于领域知识和探索性数据分析,按资产类型和相关性对特征进行分组。使用 XGBoost 的特征重要性和排列重要性来细化集合,重点关注对验证性能影响最大的特征。
  • 重要的特征变换:
    • 创建了技术指标(移动平均线、波动性指标)、市场状态指标(趋势、动量)和滞后特征以捕捉时间依赖性。使用稳健缩放(Robust Scaling)为神经网络模型缩放特征。
  • 有趣的特征交互:
    • 观察到商品价格与外汇汇率之间以及不同商品组之间存在显著的交互作用。跨资产相关性和滞后目标值提供了额外的预测能力。
  • 外部数据的使用:
    • 未使用外部数据;所有特征均源自提供的比赛数据集和工程特征。

A5. 训练方法

  • 使用的训练方法:
    • 主要训练方法是 XGBoost(用于稳健、可解释的表格数据建模)和 TensorFlow 深度神经网络(用于捕捉复杂的非线性关系)。两种模型均使用 Optuna 进行超参数优化,并使用 MLflow 和 TensorBoard 进行实验跟踪。主要进行了三次提交:仅 XGBoost、仅 TensorFlow 以及两者的集成。
  • 集成方法:
    • 构建了一个加权集成,以结合 XGBoost 和 TensorFlow 模型的预测,利用它们的互补优势。
  • 模型权重:
    • 集成权重被优化为超参数,最终配置基于验证性能,将大约 0.68 分配给 XGBoost,0.32 分配给 TensorFlow。

A6. 有趣的发现

  • 使用的最重要技巧:
    • 对两种模型类型和集成权重进行联合超参数优化,加上仔细的特征工程和稳健的验证分割,显著提高了性能。值得注意的是,虽然 XGBoost 在本地验证和测试数据上是最佳模型,但 TensorFlow 模型在 Private Leaderboard 上取得了最高分,表明它对隐藏测试集的泛化能力更好。
  • 解决方案的独特之处:
    • 同时使用 XGBoost 和 TensorFlow,结合系统的集成和彻底的实验跟踪,实现了灵活的模型选择和稳健的结果。自动调整和早停有助于避免过拟合。比赛期间排行榜难以解读,因为存在利用评估 API 的可疑或“虚假”提交,使得在最终结果公布前难以评估真实的模型性能。
  • 其他有趣的数据关系:
    • 观察到商品价格与外汇汇率之间存在强关系,滞后目标值提供了有价值的预测信号。

A7. 简单的特征与方法

  • 获得 90-95% 性能的子集特征:
    • 使用 XGBoost 和减少后的前 10-15 个特征(主要是关键商品价格、外汇汇率和技术指标),实现了接近完整模型 90% 的性能。
  • 最重要的模型:
    • XGBoost 是本地验证简化方法中最有效的单一模型,但比赛结果表明 TensorFlow 在某些情况下泛化能力更好。
  • 简化模型得分:
    • 简化模型实现了大约相当于完整集成验证分数的 90-92%(确切指标请参阅笔记本)。

A8. 模型执行时间

  • 训练时间(完整模型):
    • 完整训练(包括超参数调整)在标准 GPU 实例上花费了数小时;在所有数据上重新训练最终模型,XGBoost 花费 1-2 小时,TensorFlow 花费 1-2 小时。
  • 预测时间(完整模型):
    • 为测试集生成预测,每个模型花费几分钟。
  • 训练时间(简化模型):
    • 简化的 XGBoost 模型训练时间在 10 分钟以内。
  • 预测时间(简化模型):
    • 使用简化模型生成预测的时间在 1 分钟以内。

A9. 参考资料

主要参考资料和资源:

附件 (Notebooks)

  • 00_data_exploration.ipynb 下载
  • 01_mitsui_hyperparameter_optimization.ipynb 下载
  • 02_training_submission.ipynb 下载
  • 03_kaggle_submission.ipynb 下载
  • MODEL_SUMMARY_TEMPLATE.md 下载
```
同比赛其他方案