680. MABe Challenge - Social Action Recognition in Mice | MABe-mouse-behavior-detection
这是我的最终脚本链接:
https://www.kaggle.com/code/ymatioun/mabe-blend-ym
该脚本适用于训练和提交,基于"nn_mode"和"CFG.mode"中的设置。但训练是离线完成的,推理时使用预训练模型——以减少运行时间并简化流程。
我的解决方案是神经网络和 XGBoost 的融合。几个版本的 NN 和 XGB 使用略微不同的设置训练并融合在一起。
神经网络是带有几个密集层(dense layers)的 LSTM。输出是所有允许动作的"softmax"。不允许的动作会被掩码屏蔽(masked out)。“实验室代码”通过类别嵌入层(categorical embedding layer)处理并添加到输入中。
大部分精力放在了特征工程上。我最终得到了大约 60 个特征——主要是距离、角度、速度等。还有一些元数据特征。
输入数据是为所有实验室组合的,选择了大多数数据中存在的 5 个身体部位。这样模型就能够学习所有实验室中的数据模式。
训练使用小批量(batch size 为 16 或 32),使用"CosineDecayRestarts"调度器。
XGBoost 模型基于最好的公共 notebook,进行了许多更改。以下是一些更改:
后处理:融合的预测概率在超过阈值时转化为二元预测。阈值因实验室和动作而异;它是通过网格搜索(grid search)在折外预测(out-of-fold predictions)上优化的。当同一帧预测了多个动作时,保留概率与阈值比率最高的那个。
利用数据特性:我研究过这一点,但没有从中获得太多好处。但存在一些潜在可利用的数据特性: