2020数字中国创新大赛-智能算法赛-冠军方案分享


写在前面的话
大家好,我是 Champion Chasing Boy 的 DOTA,在队友 鱼遇雨欲语与余 、 尘沙杰少 、林有夕 、嗯哼哼唧 的Carry下,最终在本届智能算法赛拿到了复赛总榜单Top1的成绩。下面分享一下我们团队在A、B、C榜各阶段的解决方案。
一、赛题背景介绍
本赛题基于位置数据对海上目标进行智能识别和作业行为分析,要求选手通过分析渔船北斗设备位置数据,得出该船的生产作业行为,具体判断出是拖网作业、围网作业还是流刺网作业。初赛将提供11000条(其中7000条训练数据、2000条testA、2000条testB)渔船轨迹北斗数据。
复赛考虑以往渔船在海上作业时主要依赖AIS数据,北斗相比AIS数据,数据上报频率和数据质量均低于AIS数据,因此复赛拟加入AIS轨迹数据辅助北斗数据更好的做渔船类型识别,其中AIS数据与北斗数据的匹配需选手自行实现,具体细节复赛开赛时更新。同时,希望选手通过数据可视化与分析,挖掘更多海洋通信导航设备的应用价值。
数据示例 :

渔船ID:渔船的唯一识别,结果文件以此ID为标示
x: 渔船在平面坐标系的x轴坐标
y: 渔船在平面坐标系的y轴坐标
速度:渔船当前时刻航速,单位节
方向:渔船当前时刻航首向,单位度
time:数据上报时刻,单位月日 时:分
type:渔船label,作业类型
原始数据经过脱敏处理,渔船信息被隐去,坐标等信息精度和位置被转换偏移。
选手可通过学习围网、刺网、拖网等专业知识辅助大赛数据处理。
AIS数据:

ais_id:AIS设备的唯一识别ID
评估指标

其中P为某类别的准确率,R为某类别的召回率,评测程序f1函数为sklearn.metrics.f1_score,average='macro'。
方案整体框架设计

二、A、B榜方案分享(算法篇)
2.1 数据探索 &信息挖掘
刺网变化情况 刺网的线段看上去很多较为规范,很多看上去像是在很多地方放了很多网,然后船去收网的样子。

从数据中挖掘信息是辅助识别作业类型的关键,不同作业的渔船,其行驶轨迹、速度、经纬度变化等都存在一定的差异。

拖网变化情况
- 拖网的坐标看上去有些乱,lon 的移动相较于lat 要大一些。
- 可能因为拖网的关系,会明显出现几段直线;

围网变化情况
- 围网很多都有明显的画圆或者半圆的痕迹;
- 有些围网看上去像是快速转圈的情况;

刺网变化情况
- 刺网的线段看上去很多较为规范,很多看上去像是在很多地方放了很多网,然后船去收网的样子。
2.2 特征工程框架

单属性特征,从速度、方向、经纬度等方面,由全局和局部两个方向,从分位数特征、分桶统计特征刻画渔船的基本画像。

多属性特征,采用速度相关的交叉特征为主。
2.3 算法框架

本次比赛依旧使用了“倚天屠龙”之一的LightGBM模型。

很多样本经纬度几乎不变,速度方向信息受波浪影响波动,可能是停泊等原因,分开建模。
2.4 设备匹配算法

TWS和SWS
- 当两个轨迹在长时间和长距离内相似,那么它们就应该是相似的,则称其为同源轨迹。
- 这里通过时间加权相似(TWS)和空间加权相似度(SWS)两种路径匹配算法来匹配北斗数据和AIS数据,同时帮助挖掘AIS数据的价值。

基于对抗验证的匹配算法(杰少尘沙)
本赛题 杰少 提出了 基于对抗验证的匹配算法 ,将无监督问题转为有监督问题,同时易于加入多种不同的信息,将多种不同的因素信息一起进行考虑。
三、C榜方案分享(可视化篇)
3.1 系统架构

可视化方案部分,由 首席全栈搬砖师 林有夕 实现了智慧海洋云系统的搭建。主要包含:
- Angular.js前端框架 + echarts可视化,完成前后端分离设计,保证代码和数据安全;
- Nginx + Flask 实现web接口 ,灵活部署。利用数据预计算+缓存+索引优化技术,提高效率。
3.2 应用案例

渔船作业种类繁多,分布差异巨大,对渔船进行大数据画像,描绘知识图谱,以便于政府部门掌握渔船的 基本信息、状态监控和行为特点等。

使用时序模型预测渔船未来30分钟所在的位置,并结合风控画像计算碰撞指数。综合考量船速、渔船密度、设备掉线时常、定位漂移率等指标。

流量预测方面,结合船只运行轨迹以及历史行为对未来24小时区域进行流量预测。

通过热力图展示区域碰撞系数,对碰撞做出有效的提前预警。

安全生产一直是我们关心的一个方向,在经过前面图谱的构建、可视化数据的深度分析和挖掘之后,我们有了一定的基础,通过机器学习、人工智能的方式对海洋渔船流量进行预测,向安全监控进行赋能,帮助渔船调度、防碰撞预警、资源的合理安排等。通过动态分布图刻画渔船行为迁移规律。
写在最后的话
以上是我们团队Champion Chasing Boy 在本次数字中国创新大赛智能算法赛道中的完整方案。本篇文章只从整体架构方面进行了方案介绍,具体涉及的部分细节,敬请关注其他队友的分享。
