在企业全球化业务体系中,海运物流作为其最重要的一项支撑。其中,船运公司会和数据供应公司进行合作,对运输用的船通过GPS进行定位以监控船的位置;在运输管理的过程中,货物到达目的港的时间是非常重要的一项数据,那么需要通过船运的历史数据构建模型,对目的港到达时间进行预测,预测时间简称为ETA(estimated time of arrival),目的港到达时间预测为ARRIVAL_ETA。
一、数据处理部分
(1)对于这次赛题数据集是20G左右,对于普通的笔记本肯定是处理不了那么大的数据的,之后我利用Pandas进行分块读取存储成一个文件100w行的小文件。然后对将这些文件处理成以船号为文件名的文件,其中每个文件都是这艘船的历史GPS数据。之后可以方便对没艘船的数据进行处理。
(2)由于此次题目和之前的赛题不太一样即官方没有给训练集的label,需要我们自己给训练集进行打标,而打标是否准确也是此次赛题的关键之一。我们团队对于打标处理方式是将每个订单的最后一条数据作为目的港口,然后设置阈值15000米,速度小于3即判断到港。因为一般来说每个订单的最后一条数据也离目的港口不太远了。对于起始港口时间,我只是简单的剔除掉了前一部分速度为0的gps数据。
(3)初赛测试集gps数据是每个订单抽取前10%~50%的数据,而为了使训练集和测试集分布相同,在这里也随机取训练集10%~50%的数据作为训练集,label即为(2)到港的gps时间减去随机截取后的第一个gps的时间。至此数据处理完毕。
二、相近轨迹的选择
在比赛前期一直用的是所有订单进行训练,但是一些订单是会导致模型逆增长的,借鉴周周星相似轨迹的提取,但是由于水平有限,不知道如何利用聚类等方法实现相似轨迹的提取。我们利用目的港口在一个阈值内判断它们的目的港口是一致的,通过这种方法提取到相近港口。最后发现这样效果比较好。
三、特征提取
对于特征提取部分,初赛主要提取了一些统计特征,即初赛以订单为主,一个订单最后只有一条数据,虽然感觉这样处理有问题,但是没有想到如何利用全部数据进行训练。
对于以订单为主的统计特征,主要提取了时间、速度、第一条和最后一条经纬度值,在训练时发现最后一条经纬度重要性特别高。
四、模型
模型选择了lgb模型,在比赛过程中尝试了5折、3折、单折等训练方式,最终发现3折效果比较好。
四、初赛成绩
A榜:67 B榜:30
复赛第一天用了初赛的方法提交了一次效果特别不好误差在2w左右,而训练集只是增加了一些订单,那么问题主要是出现在了测试集中,测试集的分布同初赛不一致,复赛测试集不在只是随机抽取10%~50%的数据,而是各个阶段的数据都有,导致复赛测试集非常脏,最后经群内大佬提醒一条异常订单,手动处理掉这个订单后,直接提了8000分左右。然后就一直在试各种特征的组合,最后效果也就在8000分左右。
然后经队友提醒:一个订单的数据可能在不同船上,虽然之前也发现过,但是一直没有进行处理,之后对以订单为文件的数据进行处理,对不同船形同订单合并,最后以订单为文件进行处理。之后同样的方式处理,有了进一步的提升。
之后开始考虑如何全量数据训练,我抽取了统计特征的一部分用到gps特征的提取,最后用了去重后的全部数据,也对训练集进行了随机截取,最后在复赛A榜达到2300的分数,同样订单进行训练大概在3500分左右。
最后成绩:
A榜:37 B榜:40
这样连热身赛历时3个月左右的大数据挑战赛结束了,这次参赛体验没有19年的好,最终成绩也没有19年好,所幸最后扩充了20个三等奖名额,最终获得国家三等奖。连续两年参加大数据挑战赛,在比赛中认识到自己的不足以及能力的欠缺,在之后会更加努力学习这方面知识。多参加比赛,大数据挑战赛明年再见吧。希望明年有个好的参赛体验。