使用 python 预测长期船舶位置

Predicting long term ships positions with python

我有这个关于船舶位置的历史数据集

id : the id of the ship
date : the date when the position was recorded (on a daily basis) 
size: the size of the ship (categorical with 3 categories)
longitude
latitude
zone : binary (the variable to predict) 
destination: The port of destination
heading : a numerical variable indicating the angle of direction of the ship

所以典型的一行看起来像

id    date        size   longitude   latitude   zone   destination   heading
123   20/04/2017  PMX    26.3565     -15.7474   True   NYC           36.7654

根据一些标准,我可以意识到,对于每艘船,他们过去所制定的一组不同的轨迹。所以我创建了一个新功能,我称之为轨迹。我还创建了一个速度变量所以我的新数据框看起来像这样

id    date        size   longitude   latitude   zone   destination   heading  trajectory
123   20/04/2017  PMX    26.3565     -15.7474   True   NYC           36.7654    1
123   21/04/2017  PMX    29.3556     -18.7498   True   NYC           46.7654    1
123   15/05/2017  PMX    36.8760     12.3449    False  CHINA         78.7640    2
...   ........    ..       .....     .....      ....   ....          ......     ..
567  13/04/2017   SFD    17.8687     16.8787    False  Balb          23.3232    3

我必须为该区域实施分类算法,以确定在接下来的 30 天内是否有船只经过该区域。我读过一些关于使用轨迹之间的自定义距离进行 DBSCAN 聚类的论文。但这是为了预测位置。所以我想知道是否有更简单的方法来解决这个问题?

对于典型的远洋货船,30 天基本上是一次航程,但有时是两次。

所使用的路径往往非常相似,因为它们被认为是最优的(绕过风暴的模数路由)。这些路线不仅对同一艘船是一致的,而且在所有大小大致相似的船之间也是一致的。

因此,一种方法是根据您的历史数据构建一个路线库,不是对位置而是对路径进行聚类。如果起点和目的地相同或相似,则应检查路线的相似程度。 "CHINA" 不是一个足够精确的目的地,因此如果这是您的真实输入数据,您应该丢弃该列并通过检查哪个端口靠近每个旅程的实际最后位置来生成您自己的目的地。

离开陆地后,货船的速度有些统一,所以预测的路线应该足以预测每天行程中的位置。当然,一旦开始,您就可以根据已有的数据测试预测器。

你的目标区域越小,这就越难。希望它们很大。