基于GPS轨迹的交通工具分类器

Posted by zixuan-zhang on April 1, 2015

Introduction

这个项目从年前开始着手调研,年后正式开发。这是我第一次做数据挖掘方面的工作,也是实习到目前为止第一个感觉有点挑战性并且非常有兴趣去做的工作。

这个项目简单来讲就是需要做一个分类器,依据并只依据GPS监测的轨迹,对这些轨迹按照交通工具进行分类。也就是说,对于一条GPS监测轨迹,可以通过这个分类器判断是步行轨迹还是自行车轨迹还是驾车轨迹。

Relevant Work

关于交通工具分类这一领域,属于智慧城市的范畴,目前学术上有一定研究。其中MSRA的郑宇研究员对此有一定的研究成果,并发表了Learning Transportation Mode from Raw GPS Data for Geographic Applications on the Web论文。论文的参考价值有三个:

  1. 介绍了一种基于Stop Point将轨迹切分的方法。这个方法的主要目的是为了切分轨迹使某一轨迹的交通工具唯一化。
  2. 介绍了一些代表并区分不同交通工具的轨迹特征及其计算方法。
  3. 介绍了一些建模方法,提出决策树模型的效果最好。

上面三条在很大程度上指导了本项目的开发。

除此之外,论文Transportation Mode Detection using Mobile Phones and GIS Information论文在GPS监测数据的基础上,引入了路网信息,并重新提出了一些轨迹特征,利用了不同的模型进行建模。

从上面两篇论文提供的数据来看,郑宇设计的分类器的最终效果并不理想,至少效果不足以投入使用,而下一篇论文的效果较好。我觉得原因有两条:

  1. 第二篇论文引入了路网信息,增加了公交站点信息,提高了公交和驾车的分类准确率。
  2. 第二篇论文虽然没有明显的说明,但是可以推测该论文是基于“单一轨迹的交通工具是唯一的”这一假设;而郑宇的论文并没有,并提出了一种方法来解决这个问题。因此,这一原因在一定程度上决定了第二篇论文的准确率更高。

而对我们来说,路网信息是足够的,但是目前并没有很好的利用路网信息的方法,因此设计分类器时只考虑了GPS记录信息。因此,这个项目可称之为:基于GPS轨迹的交通工具分类器。

Data Acquisition & Data Cleaning

对于分类器来说,获取高质量的训练数据是第一步的工作。依靠百度地图这个大BOSS,数据采集并不是一件难事。但是对于原始数据,存在以下几种情况:

  1. 出现连续多个监测点GPS监测数据为空。
  2. 单个时间点有多个GPS监测数据。
  3. GPS点漂移严重造成垃圾数据。比如步行轨迹存在速度为10m/s的点等。

因此,需要对原始数据进行数据清理。数据清理主要有以下几种策略:

  1. 轨迹切分。出现连续多个时间点GPS监测数据为空时,如果两条轨迹的时间间隔太大,则被认为会明显影响轨迹特征,因此当连续GPS监测数据为空的时间超过一定阈值后,需要对轨迹进行切分。 单个时间点多个GPS监测数据问题。由于这种情况相同时间点多个GPS记录的坐标差别不大,所以简单的只保留第一条数据。
  2. 由于GPS定位问题造成的垃圾数据。
    • 清理掉轨迹头部尾部方向离谱点集。在很多情况下,由于Wi-Fi定位问题,很多轨迹的头部和尾部会出现离谱的GPS点,因此需要清理掉这些离谱的点集。
    • 清理掉轨迹头部尾部额停止点。停止点会影响特征向量的计算,而这些点是没有用的,因此需要将这些点清理掉。
  3. 轨迹GPS监测点过少。轨迹越长,轨迹的特征越明显,因此过滤掉GPS点过少的轨迹。
  4. 轨迹总长度过小。同4一样,过滤掉总距离小于一定阈值的轨迹。

Feature Extracting

Category Features Significance
Basic Features Dist(Abandoned) Distance of a segment
Basic Features MaxV(P96) Maximal velocity of a segment
Basic Features MaxA(P96) Maximal acceleration of a segment
Basic Features AV Average velocity of a segment
Basic Features EV Expectation of velocity of GPS points in a segment
Basic Features DV Variance of velocity of GPS points in a segment
Advanced Features HCR Heading Change Rate
Advanced Features SR Stop Rate
Advanced Features VCR Velocity Change Rate

在计算轨迹特征时还考虑了其他情况,就不在这里特别说明了。

Results

在本分类器中,交通工具共分为[步行、自行车、驾车]三类。在测试的过程中,我们选用70%的数据作为训练数据,30%的数据作为测试数据,采用Python的sklearn库的DecisionTreeeClassifier模型。最终的测试结果还不错,步行的和驾车的准确率比较高,自行车的准确率稍差。具体的数据就不在这里展示了。另外,增加路网信息可以增大分类准确率,这是一个研究的方向。


Creative Commons License
This work is licensed under a CC A-S 4.0 International License.