返回列表

26th Place Solution – MITSUI&CO. Commodity Prediction Challenge Writeup

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

开始: 2025-07-24 结束: 2026-01-16 量化投资 数据算法赛
第 26 名解决方案 – 三井物产商品预测挑战赛解题报告

第 26 名解决方案 – 三井物产商品预测挑战赛解题报告

稳定的特征工程与聚类方法

作者: dhue123 (EXPERT)
排名: 第 26 名
发布日期: 2026-01-21

介绍

我非常兴奋能在这次比赛中获得我的首枚银牌。我相信取得这一结果的关键在于识别出那些无论 date_id 如何变化都能与目标保持稳定相关性的特征,尽管我必须承认运气也起到了重要作用。

解决方案概述

我将数据集转换为“长格式”(如下所示),以便单个模型可以同时处理所有目标。

date_id feature_1 feature_2 feature_n target target_id
0 0.34 0.57 0.23 0.15 target_0
0 0.12 0.22 0.43 0.07 target_1

模型与特征

  • 模型:LightGBM
  • 特征:我优先考虑那些随时间推移与目标显示出一致相关性的特征。
    • 过去回报均值的排名
    • 过去回报标准差的排名
    • 通过聚类生成的分类值
    • 指示过去回报排名模式是否在前 12 名或后 12 名内的标志
    • 手动分配的类别标签

模型与特征评估

交叉验证 (CV)

我使用了简单的留出法(hold-out method)。我将 70% 的数据集(575 天)分配给验证集——这一时期比实际的公共/私有评估窗口要长得多——以确保稳健性。

评估指标

我通过绘制每个 date_id 的累积相关系数来评估模型性能和特征重要性。

  • 向上倾斜的线表示正相关。
  • 向下倾斜的线表示负相关。
  • 越接近笔直对角线的线表示相关性在不同的 date_ids 之间是稳定的。
累积相关系数图

特征工程

我非常注重相关性的稳定性。以下是三个显著的特征:

过去回报均值的排名

对于特定的 target_n,此特征代表其基于训练数据均值的排名(从 0 到 423)。

train_labels = pd.read_csv("train_labels.csv").set_index("date_id").fillna(0)
train_labels = train_labels.rank(axis=1)
train_length = int(len(train_labels.index) * 0.7)
mean = train_labels.head(train_length).mean()

如图所示,此特征显示出与目标持续的正相关性。

  • 平均相关性:0.035778
  • 相关性标准差:0.192780
均值排名相关性图

过去回报标准差的排名

这代表目标_n Across 训练数据的标准差排名。

train_labels = pd.read_csv("train_labels.csv").set_index("date_id").fillna(0)
train_labels = train_labels.rank(axis=1)
train_length = int(len(train_labels.index) * 0.7)
std = train_labels.head(train_length).std()

虽然此特征通常显示负相关,但与“均值排名”特征相比,它显得相当不稳定。

标准差排名相关性图

聚类类别

通过将每个目标的时间序列视为向量并应用 UMAP 进行降维,目标清楚地分离为两个不同的簇。有趣的是,这些簇通常表现出 inverse 关系(当一个簇上升时,另一个簇下降)。

我使用 K-Means 的簇 ID 作为分类特征,这稍微提高了模型的性能。我怀疑可能有更复杂的方法来利用这一发现,但我未能做到。

聚类图

模型性能

我最终模型的预测准确率(比赛指标)如下:

  • 训练集 (蓝色): 0.1787
  • 验证集 (橙色): 0.2047
模型性能累积相关性图

验证分数保持稳定,甚至在累积趋势方面优于训练分数,表明具有良好的泛化能力。

结论

我的方法集中在建立在时间稳定特征之上的 LightGBM 模型。虽然我发现通过聚类可以明显看出目标行为的二分法,但除了简单的分类特征外,我无法充分利用这一见解。尽管如此,专注于稳定相关性被证明在这次比赛中是成功的。

同比赛其他方案