比较/聚类轨迹((x,y)点的GPS数据)及数据挖掘
我有两个关于分析GPS数据集的问题。
1) 提取轨迹 我有一个庞大的数据库,里面记录了GPS坐标,格式是(纬度, 经度, 日期-时间)
。根据连续记录的日期和时间,我想提取出这个人走过的所有轨迹。比如说,从时间M
开始,(x,y)
的值一直在变化,直到时间N
。在N
之后,(x,y)
的变化就减少了,这时候我就可以认为从M
到N
的这段时间走的路径可以称为一条轨迹。这样提取轨迹的方法可以吗?有没有什么比较常见的方法、技巧或者算法可以推荐?还有没有什么数据结构或者格式可以让我更高效地存储这些点?也许对于每条轨迹,计算一下速度和加速度会有帮助?
2) 挖掘轨迹 一旦我得到了所有的轨迹/路径,我该如何比较或聚类它们呢?我想知道如果起点或终点相似,那么中间的路径又该如何比较?
我该如何比较两条路径,得出它们是否相似的结论?另外,我该如何把相似的路径聚在一起呢?
如果你能给我推荐一些相关的研究或者类似的资料,我将非常感激。
开发工作会用Python进行,但任何库的建议都欢迎。
谢谢!
2 个回答
1) 提取轨迹 我觉得你走在正确的方向上。GPS数据可能会有一些噪音和随机的移动,所以你应该使用一些平滑的方法,比如样条曲线,来解决这个问题。
2) 挖掘轨迹 类似的轨迹有没有商业价值呢?(这会帮助你建立距离度量,然后你可以使用一些聚类算法) 1. 我认为人们停留的地方更有趣,这样你可以生成这些地方受欢迎程度的统计数据。 2. 如果你需要找出不同路径的相似性,以便从同一个起点到达终点,你需要先对起点和终点的位置进行聚类,然后再根据(最大距离、积分距离等一些常用的功能度量)来聚类相似的曲线。
看看苏黎世大学地理系的研究,特别是Patrick Laube和Somayeh Dodge的工作。
可以看看这篇论文:
个人移动与地理数据挖掘。用于突出个人导航路线热点的聚类算法
(链接, 演示文稿)。这篇论文展示了如何在GPS数据上使用DBSCAN核密度估计方法。
此外,诺基亚的2012年移动数据挑战研讨会的论文也很有帮助,特别是:
MobReduce:减少移动轨迹的状态复杂性(链接)
作者是Fabian Hartmann、Christoph P. Mayer、Ingmar Baumgart。
轨迹清理框架用于轨迹聚类(链接)
作者是Agzam Idrissov、Mario A. Nascimento,来自阿尔伯塔大学。