道路匹配MapMatching:GPS轨迹点常用聚类算法介绍(K-Means聚类、蚁群算法等)

道路匹配MapMatching:GPS轨迹点常用聚类算法介绍(K-Means聚类、蚁群算法等)

  • 前言
  • 一、聚类算法是什么?
  • 二、道路匹配中常见聚类算法介绍
    • 1.K-Means算法
    • 2.基于时间和距离的算法
    • 3.蚁群算法
  • 总结


前言

实际观测过GPS轨迹的朋友知道,在一些红路灯路口或者车速较慢的道路上,采样频率较高的GPS采样设备往往会在同一个点附近记录大量的轨迹点,即出现了轨迹点大量聚集的现象。如果将这些大量聚集的轨迹点都加入到待匹配的序列中,不仅聚集的轨迹点得出的匹配结果绝大多数相同,对轨迹点匹配的意义较小;而且会极大的浪费时间和空间资源,影响匹配算法的运行效率。

图中可以看出在红绿灯路口容易出现轨迹点聚集现象:
道路匹配MapMatching:GPS轨迹点常用聚类算法介绍(K-Means聚类、蚁群算法等)_第1张图片

因此,我们在对GPS轨迹点进行道路匹配之前,往往需要对轨迹点数据进行预处理,这其中就包括使用聚类算法对轨迹点数据进行聚类,以提高算法的运行效率。
本文介绍了轨迹数据预处理中常见的几种聚类算法,包含K-means等。


一、聚类算法是什么?

首先,我们需要明确聚类算法是什么。

聚类算法定义:聚类是按照某个指标(如样本之间的距离)把数据集分割成不同的类或者簇,使类内元素的相似性尽可能的大,类间元素的相似性尽可能小,通过这样来对相似的数据进行归簇,从而达到聚类的效果。

通俗来说:在道路匹配中,在进行GPS轨迹预处理时,在尽可能不影响最终匹配结果的前提下,将相似性较高(包括间隔距离较近、间隔时间较短等特点)的轨迹点进行聚类。即在一堆聚集的轨迹点中,选出一个最具代表性的点或者生成一个新的轨迹点来概括描述一堆聚集的点,以提高算法匹配的运行效率,降低时间和空间的消耗情况。

二、道路匹配中常见聚类算法介绍

1.K-Means算法

K-Means算法应该算是很有名的一个算法了,不仅仅在道路匹配中用到,在很多领域中都会用到。

K-means聚类算法一种常见的基于划分的聚类算法,其核心策略为贪心策略。经典K-means算法流程如下:

(1)随机选取K个对象,每个对象初始地代表一个簇的中心
(2)针对剩余的对象,根据其与各簇中心的距离,将其划分到最近的簇
(3)重新计算每个簇的中心值,更新簇的中心
(4)不断重复步骤2和3,直到达到某个终止条件

K-means常见终止条件为:没有(或最小数目)对象被重新分配给不同的簇,或者没有(或最小数目)聚类中心再发生变化。

过程示例图如下:

道路匹配MapMatching:GPS轨迹点常用聚类算法介绍(K-Means聚类、蚁群算法等)_第2张图片

学习参考链接: 常用聚类算法综述

2.基于时间和距离的算法

尽管这种算法相对来说使用的范围不如K-Means算法广阔,但是这种算法很好的结合了GPS轨迹点的实际情况,实际使用效果不错。

很好结合GPS轨迹点的实际情况的原因在于:我们在GPS轨迹点数据中可以根据记录时间很容易得出相邻轨迹点的时间差,相邻轨迹点之间的距离也可以根据记录的经纬度算出。

可以采取时间和距离两种参数对轨迹点数据进行分析的原因在于:在城市中,考虑到道路限速、汽车数量、红绿灯等因素,车辆的行驶速度大部分在一个合理的区间,即不会过快或者过慢。

比如在一堆轨迹点中,相邻轨迹点之间的距离很小,算出来的结果只有0.1m或者0.2m这种,那我们就有较大把握认为此处轨迹点发生了聚集现象,对此处轨迹进行聚类往往有不错的效果。
同样的,如果两个轨迹点之间的时间过短,考虑到实际行驶速度,我们也可以进行轨迹点聚类。但是在限制轨迹点时间差聚类时,我们要注意,部分高采样类设备的采样频率很高,相邻轨迹点之间的时间差很小。此时我们可以设置滑动窗口,滑动窗口的大小可以自己按照实际情况设定。举例来说,可以设置每3个连续轨迹点进行一次聚类,这样就可以将实际需要匹配的轨迹点数量减少三分之二,这样可以导致实际运行时间优化效果显著。

当然,这种算法的缺点也显而易见,就是基于时间和距离聚类算法的最终效果极度依赖时间间隔和距离间隔的参数设置。时间间隔和距离间隔都不宜过大或过小,否则会极大的影响聚类算法的最终效果。
建议小伙伴们在使用这种聚类算法进行预处理时,可以多多进行聚类效果实验,或者找到可以达到优秀聚类效果的参数设置。这种算法实现起来很简单,主要是参数设置需要仔细调整。

3.蚁群算法

以下部分内容来自:
蚁群算法原理及其实现(python)
蚁群算法简介

蚁群算法(Ant Clony Optimization, ACO)是一种群智能算法,它是由一群无智能或有轻微智能的个体(Agent)通过相互协作而表现出智能行为,从而为求解复杂问题提供了一个新的可能性。蚁群算法最早是由意大利学者Colorni A., Dorigo M. 等于1991年提出。经过20多年的发展,蚁群算法在理论以及应用研究上已经得到巨大的进步。

蚁群算法是一种仿生学算法,是由自然界中蚂蚁觅食的行为而启发的。在自然界中,蚂蚁觅食过程中,蚁群总能够按照寻找到一条从蚁巢和食物源的最优路径。

道路匹配MapMatching:GPS轨迹点常用聚类算法介绍(K-Means聚类、蚁群算法等)_第3张图片
蚁群算法我接触的比较少,所以这里引用别人的内容,大家可以去参考链接中具体学习一下。


总结

本文介绍了道路匹配(MapMatching)中,几种GPS轨迹点常用聚类算法,包含经典的K-means聚类、蚁群聚类等,也包括了简单容易上手的基于时间和距离的聚类算法。
希望对大家有用!

你可能感兴趣的:(算法,聚类,kmeans)