2020华为云大数据挑战赛(knn+QuickBundles+LGB、 利用folium可视化、海运ETA预测)

比赛结束,由于复现出现了一些失误(现在想来完全可以避免,也算是踩坑了=。=)没能去决赛,这里还是进行一些简单总结。

数据特点以及难点:

测试集数据采样点紊乱,跟训练集不同,导致很多模型达不到理想效果。

训练集给的路由比较脏,测试集也几乎只有起始和终点的路由,中间路由都不干净。

预处理部分:

(1)将'loadingOrder','carrierName',"longitude","latitude","vesselMMSI"完全相同的重复数据删除,并按照订单号和时间进行排序

(2)去除速度和方向为异常的数据(保留速度在0到60之间的,方向在0到36000之间的)

(3)对训练集数据进行采样,采样间隔为5分钟,减少数据冗余

(4)针对换船的数据,出现换船后就只保留换船后的数据

(5)对Port表进行清洗:只保留训练集出现过的港口名,港口重名消歧,港口位置修正

(6)重构训练集的路由,以便后面可以使用全量数据进行学习

   (7) 生成测试集和训练集的路由与订单号对应的两张表,方便后面进行调用

模型思路:

将预测船到达目的港时间的任务转换成3个子任务

1.预测船当前行驶航段(如A-B-C, 当前处于A-B):

该步利用历史航线数据生成标签,采用LGB和KNN两个模型对当前行驶信息进行分类,将test本身作为unknown一起进行训练,以减少数据量小的冷启动问题带来的误差

2.对历史航段聚类并预测船当前航线属于哪一类别(实际应用应提前聚类以达到实时预测效果)

利用QuickBundles对历史航线信息进行聚类,knn判断现在的航线属于哪一类别

可视化可以看到实际的一个聚类效果:

 图中为某一相同起始与终止港下的数据,蓝色为测试集,黄色为聚类后与蓝色为同类的, 红色为被分类为其他类别的数据。

3.构建LGB回归模型对船的到港时间进行预测

利用速度,方向,经纬度信息,距离,时间等信息作为特征构建模型,对到港时间进行预测。

贴个代码连接https://github.com/aBadCat/BDC2020, jupyter里面的注释写的比较详细。

总结:

本次比赛复赛存在大量leak泄漏,导致根本无法判断模型好坏还是数据好坏,我们发现的还比较晚,害。

这次高校赛本来初赛rank10, 复赛改了思路以为稳进决赛了,但是确实复赛暴露出大量的问题,赛题本身数据大量泄漏,导致后面,害一言难尽,两个月的比赛还不如写写论文,参加的人心里都懂,也算是比较难受的经历吧。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值