海上安全治理是海洋发展中至关重要的环节,了解各个区域船只的工作情况以及具体位置,可以对于防止因为船只的碰撞等事故而造成的巨大损失,而要提升海上安全治理能力,首要任务是“看得清”,即看得清“是什么、谁在用、做什么”。船舶避碰终端(AIS)、北斗定位终端等通信导航设备的应用,给海上交通和作业带来了极大便利,但同时存在设备信息使用不规范造成的巨大人身和财产损失,给海上安全治理带来了新的挑战。本次赛题基于位置数据对海上目标进行智能识别和作业行为分析,要求选手通过分析渔船北斗设备位置数据,得出该船的生产作业行为,具体判断出是拖网作业、围网作业还是流刺网作业。

此处感谢qyxs的友情分享,关于第一名的代码,我们抽取部分精华简单介绍,详细的细节可以去文末参考qyxs的Github下载code慢慢品味。

本次大赛算法赛阶段第一名团队对经纬度进行geohash编码,

def geohash_encode(latitude, longitude, precision=12):"""Encode a position given in float arguments latitude, longitude toa geohash which will have the character count precision."""lat_interval, lon_interval = (-90.0, 90.0), (-180.0, 180.0)base32 = '0123456789bcdefghjkmnpqrstuvwxyz'geohash = []bits = [16, 8, 4, 2, 1]bit = 0ch = 0even = Truewhile len(geohash) < precision:if even:mid = (lon_interval[0] + lon_interval[1]) / 2if longitude > mid:ch |= bits[bit]lon_interval = (mid, lon_interval[1])else:lon_interval = (lon_interval[0], mid)else:mid = (lat_interval[0] + lat_interval[1]) / 2if latitude > mid:ch |= bits[bit]lat_interval = (mid, lat_interval[1])else:lat_interval = (lat_interval[0], mid)even = not evenif bit < 4:bit += 1else:geohash += base32[ch]bit = 0ch = 0return ''.join(geohash)

然后采用tfidf,countervector,w2v等转换抽取特征并结合诸多细致的统计特征作为最终的特征模块,最后采用LightGBM进行建模,该方案在AB榜单上都取得了Rank1的成绩,同时在AB榜单的第一第二阶段也都十分稳定。

关于tfidf,countervector和w2v等代码如下:

Tfidf代码:

def tfidf(input_values, output_num, output_prefix, seed=1024):tfidf_enc = TfidfVectorizer()tfidf_vec = tfidf_enc.fit_transform(input_values)svd_tmp = TruncatedSVD(n_components=output_num, n_iter=20, random_state=seed)svd_tmp = svd_tmp.fit_transform(tfidf_vec)svd_tmp = pd.DataFrame(svd_tmp)svd_tmp.columns = ['{}_tfidf_{}'.format(output_prefix, i) for i in range(output_num)]return svd_tmp

count2vec代码:

def count2vec(input_values, output_num, output_prefix, seed=1024):count_enc = CountVectorizer()count_vec = count_enc.fit_transform(input_values)svd_tmp = TruncatedSVD(n_components=output_num, n_iter=20, random_state=seed)svd_tmp = svd_tmp.fit_transform(count_vec)svd_tmp = pd.DataFrame(svd_tmp)svd_tmp.columns = ['{}_countvec_{}'.format(output_prefix, i) for i in range(output_num)]return svd_tmp

word2vec代码:

# workers设为1可复现训练好的词向量,但速度稍慢,若不考虑复现的话,可对此参数进行调整
def w2v_feat(df, group_id, feat, length):print('start word2vec ...')data_frame = df.groupby(group_id)[feat].agg(list).reset_index()model = Word2Vec(data_frame[feat].values, size=length, window=5, min_count=1, sg=1, hs=1,workers=1, iter=10, seed=1, hashfxn=hashfxn)data_frame[feat] = data_frame[feat].apply(lambda x: pd.DataFrame([model[c] for c in x]))for m in range(length):data_frame['w2v_{}_mean'.format(m)] = data_frame[feat].apply(lambda x: x[m].mean())del data_frame[feat]return data_frame

关于很多其他的细节和我们之前的一篇文章十分类似,此处不再做过多介绍,本文相关代码参见qyxs的Github: https://github.com/juzstu/TianChi_HaiYang

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群请扫码进群:

【竞赛】智能算法赛:智慧海洋建设Top1方案代码相关推荐

  1. 【比赛实战篇】智能算法赛:智慧海洋建设Top1方案代码

    海上安全治理是海洋发展中至关重要的环节,了解各个区域船只的工作情况以及具体位置,可以对于防止因为船只的碰撞等事故而造成的巨大损失,而要提升海上安全治理能力,首要任务是"看得清",即 ...

  2. 智慧海洋建设TOP方案借鉴学习与整理

    文章目录 数据探索与预处理 渔船作业方式的定义 渔船作业过程中的三种状态 预处理 特征工程 统计特征 表征渔船的轨迹 POI信息 基于轨迹序列绝对和相对位置的复合向量编码 表征渔船不同状态下的信息 A ...

  3. 智慧海洋建设TOP_1方案学习笔记

    文章目录 赛题 要求 数据 TOP1 解决方案 数据读取 特征工程 基本预处理 统计特征 基于轨迹序列绝对和相对位置的复合向量编码 Word2Vec 比赛来源:天池平台 智慧海洋建设 感谢大佬开源TO ...

  4. 【算法实战篇】时序多分类赛题-2020数字中国创新大赛-智慧海洋建设top5方案(含源码)

        Hi,大家好!这里是AILIGHT!AI light the world!这次给大家带来的是2020数字中国创新大赛-数字政府赛道-智能算法赛:智慧海洋建设的算法赛复赛赛道B top5的方案以 ...

  5. 【时序多分类赛题】2020数字中国创新大赛-智慧海洋建设top5方案(含源码)

       这次给大家带来的是2020数字中国创新大赛-数字政府赛道-智能算法赛:智慧海洋建设的算法赛复赛赛道B top5的方案以及代码开源.比赛传送门:https://tianchi.aliyun.com ...

  6. 2020数字中国 天池——智慧海洋建设 Top1%

    文章目录 Solution 总结 这是前段时间参加的天池比赛,最终成绩:18/3275. 下面先给出我的solution,最后再写一点总结. Solution # coding: utf-8# In[ ...

  7. ​DCIC 2020:智慧海洋建设 开源方案复盘笔记

    一.赛题介绍 1.1 赛题背景 本赛题基于位置数据对海上目标进行智能识别和作业行为分析,要求选手通过分析渔船北斗设备位置数据,得出该船的生产作业行为,具体判断出是拖网作业.围网作业还是流刺网作业.初赛 ...

  8. 2020DCIC智慧海洋建设算法赛学习01-赛题北京及地理数据分析常用工具

    序: 本系列的博客旨在学习2020DCIC智能算法赛-智慧海洋建设的优秀方案,对地理数据分析问题积累一些思路和经验. 作为这一系列博客的开篇,这篇博客主要内容包括对赛题的解析和对项目中会用到的一些常用 ...

  9. 【算法竞赛学习】数字中国创新大赛智慧海洋建设-Task3特征工程

    智慧海洋建设-Task3 特征工程 此部分为智慧海洋建设竞赛的特征工程模块,通过特征工程,可以最大限度地从原始数据中提取特征以供算法和模型使用.通俗而言,就是通过X,创造新的X'以获得更好的训练.预测 ...

最新文章

  1. linux使用shell函数扩充命令,Linux Shell系列教程之(十五) Shell函数简介 | Linux大学...
  2. mysql分组获取其他字段_sqlserver group by后获取其他字段(多种方法)
  3. 双网关,可以上内网或外网,如何同时上内网和外网?
  4. 2018年计算机职称考试冲刺,2018年中级会计职称考试冲刺阶段学习计划
  5. 对step文件进行信息抽取算法
  6. 开发经理是否应该写代码?​
  7. 结构梁配筋最牛插件_国内外好用的Revit插件汇总
  8. 代理服务器出现网络连接错误怎么办?
  9. 【NLP】NO5:文本聚类
  10. 华为交换机升级包及补丁验证完整性
  11. 老领导调岗,你想跟他干,怎么说?
  12. easy-mock使用
  13. 《程序员的修炼——从优秀到卓越》读书笔记
  14. 台式计算机的安装顺序,台式电脑安装系统步骤图 装系统步骤详解
  15. 今天给大家分享scratch与数学,小猫绘画随机多边形!
  16. php eod,[PHP] EOD 及 mail 发布_PHP
  17. 快速矩阵乘法的研究——中
  18. 一个5年收益斩获了131倍的策略
  19. Jdk1.8.0_111安装手册
  20. 腾达路由器linux开发,Linux内核系统! 腾达8口路由器功能超强

热门文章

  1. 一个linux 和 Windows下都可用的 scoket
  2. nyoj1237 最大岛屿(河南省第八届acm程序设计大赛)
  3. 一个老忘且非常有用的jquery动画方法 网页上卷
  4. 云计算学习(2-4)云计算的案例
  5. LoadRunner界面分析(二)
  6. Android UI(三)SlidingMenu实现滑动菜单(详细 官方)
  7. 让win7提速几倍的10个方法
  8. Silverlight Tips(1)
  9. python 倒计时_Excel制作竞答倒计时器
  10. 安装 | MatlabR2021bMac链接及Matlabx运行图基本运行代码与图像