文章目录
本文主要是学习了天池的智慧海洋建设比赛的一些TOP方案,并对思路进行整理,本文以TOP1的方案为主,其他方案作为补充。
参考的文章如下:
- 2020DCIC智能算法赛-智慧海洋建设TOP1方案
- DCIC 2020数字中国创新大赛数字政府赛道:智慧海洋建设Rank 3解决方案
- 智慧海洋复赛0.89937方案代码开源
- 智慧海洋建设算法赛道B榜top5 方案及源码
- 42个特征+xgboost top7方案-完整notebook
非常感谢前排大佬开源的方案!
数据探索与预处理
渔船作业方式的定义
拖网:拖曳渔具在海底或海水中前进,对鱼类进行捕捞的作业方式。
围网:使用网具包围鱼群进行捕捞的作业方式
刺网:将长带形的网列敷设于水域中,使鱼刺入网目或被网衣缠络后加以捕捞
渔船作业过程中的三种状态
Anchored-off:船舶休息的点
Turning:船舶转弯的点
Straight-sailing:船舶航行的点
预处理
轨迹数据预处理方面, 将平面坐标转换为经纬度坐标。首先采用了经验阈值均值滤波去除了每条轨迹速度的异常值、坐标的离群点, 并用多项式插值函数对离群点进行了插值,基于局部速度对异常坐标点进行插值。
特征工程
统计特征
1,分箱特征,距离海岸线的近似值。
对v求分箱特征,等分为200份,求每一份的统计值
对x求分箱特征,1000份和10000份,求每一份的次数统计值,和每一个分箱对应不同id数目
对y求分箱特征,1000份和10000份,求每一份的次数统计值,和每一个分箱对应不同id数目
求x,y分箱后的组合特征做为分组,求对应的次数统计值,和对应的id的不同数目
根据x分组,求y距离最小y的距离 # 可以理解为距离海岸线距离
根据y分组,求x距离最小x的距离 # 可以理解为距离海岸线距离
2,对渔船的经纬度序列做均值、方差、分位数、众数等统计,可以简单地刻画渔船的活动范围
mode_df = data.groupby(['渔船ID', 'lat', 'lon'])['time'].agg({
'mode_cnt':'count'}).reset_index()
mode_df['rank'] = mode_df.groupby('渔船ID')['mode_cnt'].rank(method='first', ascending=False)
for i in range(1, 4):
tmp_df = mode_df[mode_df['rank']==i]
del tmp_df['rank']
tmp_df.columns = ['渔船ID', 'rank{}_mode_lat'.format(i), 'rank{}_mode_lon'.format(i), 'rank{}_mode_cnt'.format(i)]
data_ = data_.merge(tmp_df, on=['渔船ID'],