python - 使用 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”不是一个足够精确的目的地,所以如果这是您的真实输入数据,您应该丢弃该列并通过检查每个旅程的实际最后位置附近哪个港口来生成您自己的目的地。
一旦他们离开陆地,货船的速度就会有点均匀,所以预测的路线应该足以预测旅途中每一天的位置。当然,一旦开始,您就可以根据已有的数据测试您的预测器。
你的目标区域越小,这就越难。希望它们相当大。
推荐阅读
- python - 如何在有多个输出时修复 ValueError(x 和 y 应该具有相同的长度)?
- visual-studio-code - 如何在 vscode 正则表达式中转义“@”以进行语法突出显示
- javascript - 在反应钩子中,我如何将新创建的对象传递给状态对象?
- php - 将整个 Excel 行复制到表单域中
- html - 文本变换和翻译的翻转坐标系的行为
- visual-studio-code - VSCode 上的 PHP 语言服务器错误:与服务器的连接已关闭。服务器将重新启动。语言服务器以退出代码 255 退出
- apache-kafka - Kafka偏移重置而不重新启动消费者
- typescript - TypeScript:使用属性装饰器时得到错误的对象
- android - 我的 webview 在默认浏览器中打开网页
- python - torch.nn.conv* 中的 groups 参数如何影响卷积过程?