返回列表

13th Public/12th Private Solution

680. MABe Challenge - Social Action Recognition in Mice | MABe-mouse-behavior-detection

开始: 2025-09-18 结束: 2025-12-15 智慧养殖 数据算法赛
13th Public/12th Private Solution
比赛排名: 第 12 名 (私有榜)
作者: Antonina Dolgorukova
团队成员: Antonina Dolgorukova, Ogurtsov, yuanzhe zhou

公开榜第 13 名/私有榜第 12 名解决方案

每动作 Boosting + TabM 集成

我们感谢 MABe 挑战赛的组织者举办了一场引人入胜的比赛,并在早期阶段提供了详细、及时的澄清。

核心思路

  • 将问题 formulat 为每动作的二分类任务,针对每个实验室单独训练
  • 在不同条件下训练多个模型,包括调整动作特定的特征子集、负样本下采样方案和超参数
  • 使用视频级别的交叉验证,并在推理时对生成的折叠模型进行集成
  • 采样背景帧以控制真负例和未标记数据的比例
  • 校准预测并使用训练先验调整对数似然比分数
  • 应用后处理,包括时间平滑、每动作阈值拟合和基于 argmax 的动作选择

EDA 笔记

我们使用了几个探索性笔记本来理解数据集的结构、局限性和隐含假设。这些分析为关键的建模选择提供了依据,包括任务 formulation、负样本采样、校准策略和后处理。

源代码

复现解决方案所需的完整源代码可在以下仓库找到:

GitHub 仓库 https://github.com/T0chka/mabe_12th_place_solution

数据组装

数据准备为每个 video_id 和 whitelist 中的每个 (agent_id, target_id) 对的所有帧与轨迹的组合(train/test csv 文件中的 behaviors_labeled 列)。标注了给定行为的帧被视为该动作的正例;未标记的帧被视为背景。

共享特征空间

所有模型重用由三组组成的公共特征表示:

  1. 不变量、以 agent 为中心的几何和运动学(相对距离、角度、接近/撤退线索、运动对齐和接触后的时间)。
  2. 单鼠标描述符(向前和横向速度、加速度、总速度、转弯率、路径曲率、运动平滑度、体长、耳隙和相关稳定性指标)。
  3. 每只鼠标内 selected body parts 之间的成对距离以及 agent-target 对之间,要么在原始 landmarks 上计算,要么在通过平均上下身体部分获得的聚合身体区域上计算。

不变量和单鼠标描述符按 agent 体长归一化。

对于部分模型,基础特征集增加了为 tuned subset of base variables 计算的窗口时间特征。具体而言,管道附加了三个滞后窗口的滚动均值摘要,提供历史感知协变量。

模型

最终集成包括 5 个模型家族:XGBoost, LightGBM, Catboost, PyBoost, 和 TABM。

基于 Boosting 的模型针对每个实验室和每个动作单独训练。在 LightGBM 中,正帧的权重与相应动作运行长度成反比,防止长连续事件主导损失。由于原始 boosting margins 在动作和实验室之间不可直接比较,我们应用了两步 Platt 校准及先验校正,从 out-of-fold (OOF) 预测中学习。

TABM 模型针对每个实验室使用 one-vs-rest 公式训练,每个动作有独立的 sigmoid heads。

集成使用在 OOF 上拟合的权重,单模型得分为:

模型 Public Score Private Score
XGBoost 0.521 0.489
Catboost 0.517 0.491
PyBoost 0.512 0.488
TABM 0.506 0.487
LightGBM 0.492 0.477

负样本下采样

对于基于 boosting 的模型,未标记帧针对给定动作分为两组:

  1. 真负例帧: 有不同动作的标注,或者未标记但该动作存在于视频的 whitelist 中(意味着本可以被标注,只是动作未发生)。
  2. 可能负例帧: 未标记且该动作不在视频的 whitelist 中(意味着动作可能发生,但在标注者的标注范围之外)。

折叠的最终训练集由所有正例加上从上述两个池中按视频采样的负例组成。

对于 TabM,未标记帧按 (video, agent, target) 三元组下采样。由于模型是在多类设置下训练的,因此未应用这种负例类型区分。

交叉验证

折叠是在视频级别构建的。每个模型应用 5 折交叉验证,并为整个训练集生成完整的 out-of-fold (OOF) 预测。这导致了良好的 CV-LB 相关性。所有 5 个模型家族在推理时集成其特定折叠的模型。

后处理

帧级预测被过滤到 whitelist,仅保留有效的 (video, agent, target, action) 组合。然后使用滚动窗口应用平滑,窗口大小对应于训练数据中观察到的中位动作持续时间。动作特定阈值在 OOF 上拟合,并在平滑后应用;每帧选择一个动作使用 argmax。具有相同选择动作的连续帧随后合并为区间,形成最终提交。

同比赛其他方案