从车辆的历史位置数据学习到达时间(ETA)

数据挖掘 机器学习 数据挖掘 图表
2021-10-03 04:31:24

我的城市周围出租车的位置数据来自:Microsoft Research
总体而言,它有大约 1700 万个数据点。

我已将数据转换为 JSON 并填充了 mongo。示例如下所示:

{'lat': 39.84349, 'timestamp': '2008-02-08 17:38:10', 'lon': 116.33986, 'ID': 1131}
{'lat': 39.84441, 'timestamp': '2008-02-08 17:38:15', 'lon': 116.33995, 'ID': 1131}
{'lat': 39.8453, 'timestamp': '2008-02-08 17:38:20', 'lon': 116.34004, 'ID': 1131}
{'lat': 39.84615, 'timestamp': '2008-02-08 17:38:25', 'lon': 116.34012, 'ID': 1131}
{'lat': 39.84705, 'timestamp': '2008-02-08 17:38:30', 'lon': 116.34022, 'ID': 1131}
`{'lat': 39.84891, 'timestamp': '2008-02-08 17:38:40', 'lon': 116.34039, 'ID': 1131}
{'lat': 39.85083, 'timestamp': '2008-02-08 17:38:50', 'lon': 116.3406, 'ID': 1131}



它由一个taxiID - ID 字段、其经纬度组合的时间戳组成。

我的问题是:我想用这些数据来计算预计到达时间(ETA)

到目前为止,我是通过聚合查询 mongoDB 来做的。这是完全低效的。

我正在研究某种可以使用历史数据来训练它的学习算法。最后,给定两点,算法应该通过参考历史数据遍历可能的路线并给出时间估计。如果我得到点之间的 JSON 文档数组,那么计算时间估计根本不是问题。但是,获得那些正确的数组是。

朝这个方向的任何指示都会非常有帮助。

1个回答

根据我从您的问题中得出的结论:

1

  • 您可以使用Networkxigraph或任何其他工具/库/软件轻松地将数据转换为图形。那么你需要的是一个最短路径算法Dijkstra在所有图形/网络分析软件中被广泛使用和实现)。创建图表后,您可以简单地计算平均估计时间。
  • 为了将问题转化为学习问题,您可以使用不同路径的历史时间估计,并为与该边的属性(例如交通拥堵概率、时间条件)成比例的边分配权重,并尝试预测新的 ETA询问。

2

  • 你也可以把它变成一个网络科学问题,并使用图论等方法来解决这个问题。您可以从节点和边缘属性的统计分析开始,例如通过时间分布、最短路径长度分布、交通拥堵的概率建模等,看看是否有一些有意义的见解可以引导您进行下一步。
  • 另一个想法是使用图聚类算法提取城镇的大部分连通部分并对其进行分析,即计算不同部分的ETA而不是整个数据,并将估计时间分配给相应集群的成员,减少计算量如果你的算法复杂。

3

  • 最后但并非最不重要的是看看ArangoDB这是一种基于图的新数据库模型,您可以以惊人的速度在数百万条边上运行查询!您所需要的只是一点 javascript 知识,即使您没有它,您也可以使用为 arangoDB 设计的 AQL 语言。有趣的一点是它使用 JSON 文件作为标准数据格式,所以你已经完成了一半;)

希望我能帮上忙 :) 祝你好运!