手机用户的GSP轨迹数据分析

       目前,手机已经成为我们生活的必需品。服务商可以很容易通过手机采集到我们日常生活的GPS轨迹数据,图1为用户GPS轨迹数据示例,其采集数据的时间间隔为5秒。直接观察这些数据,我们只能发现用户经过某些地点,却不能确定用户是否在这些地点停留过。

GPS数据示例

图1用户GPS轨迹数据示例

       那么,如何通过分析用户的GPS数据来确定他在哪些地方停留过呢?
解决这一问题用到的算法是CB-SMoT。该算法是密度聚类的一个改进。选择密度聚类是因为它可以发现任意形状的簇,这正符合用户的活动规律。
CB-SMoT算法判断用户在哪些地方停留过的依据有两点,一是用户在哪些地方的GPS点相对密集,二是用户在哪些地方的运动速度较慢。从大量点数据中寻找密集点正是密度聚类的功能所在。而CB-SMoT所定义的新邻域则是寻找速度较慢的点的。
       CB-SMoT算法其实是DBSCAN聚类算法的改进,它与DBSCAN的不同之处在于对邻域的定义不同。CB-SMoT对邻域定义如下:
这里写图片描述
       下面通过如图2来举例说明新邻域。对于O点邻域内的点,DBSCAN算法认为以O点为圆心、Eps为半径的圆内的点都在O点邻域内,由此可知,A、B、C、D、E、F、G这八个点都在O点邻域内;而CB-SMoT算法认为,当由O点两侧相邻的点组成的线段的长度之和小于等于Eps时,这些点才在O点的邻域内,由此可知,O点邻域的点只包含B、C、D、E四个,这是因为
B C + C O = 48 < E p s , O D + D E = 48 < E p s

CB-SMoT的邻域

图2 CB-SMoT的邻域

       新邻域内相邻的点所组成的线段的长度之和,如图2,S=BC+CO+OD+DE实际上就是用户所走的路程。用户的GPS点是按照一定的时间间隔采集的。假设采集的时间间隔是5秒,由于图2中新邻域内共有5个点,所以此时用户的运动时间为t=25秒。用户在这一邻域的速度可以表示为S/t。S最大为2Eps,邻域内的点越多,则t越大,S/t越小,说明用户在这一区域的速度越慢,用户可能在此处停留。
参考文献
Palma A T, Bogorny V, Kuijpers B, et al. A clustering-based approach for discovering interesting places in trajectories[C]// ACM Symposium on Applied Computing. DBLP, 2008:863-868.

猜你喜欢

转载自blog.csdn.net/qq_41228463/article/details/80231006