轨迹聚类(一):分段及归组框架(Trajectory Clustering:A Partition-and-Group Framework))

1.综述

现有的轨迹聚类算法可分为两类:一种是基于整体的轨迹聚类,即将一条轨迹视为一个整体而对其不做分段,通过定义轨迹的相似度函数将其聚类,这样一条轨迹只能属于一个簇;另一种是基于分段的轨迹聚类,即将一条轨迹分为多段,分段的轨迹之和不一定是原轨迹,也可以是原轨迹特征的抽取。之后再进行轨迹聚类,这样同一条轨迹可能分属于多个簇,可视的结果会出现分流与聚流的效果。
基于不同的应用场景会运用不同的算法,如果只从准确度上评价而不考虑其它因素,基于分段的轨迹聚类相对更好一此。因为它研究的粒度更细,而基于整体的轨迹聚类会丢失一些细节信息,举一个例子:
An example of a common sub-trajectory
如上图,有五条轨迹 TRi(i=1,2,...5) ,如果运用基于分段的聚类算法,则方框内的轨迹将聚为一簇;而如果是基于整体的聚类算法,由于五条轨迹最终的走向各不相同,因而很有可能五条轨迹归属于不同的类。然而忽略掉起始时的聚集状态是不合理的,显然在这种情况下基于分段的轨迹聚类更好一些。
基于此,原文提出了“分段及归组”的轨迹聚类框架,正如其名,算法分为两大步:
1. 分段:将轨迹进行分段以作为下一阶段的输入;
2. 归组:相似的线段归为一类。归类的算法采用基于密度的聚类算法,本文采用的是DBSCAN算法,若不熟悉该算法可查看我的前一篇博客。
http://blog.csdn.net/jsc9410/article/details/51004057
An example of trajectory clustering in the PGF

2. 轨迹聚类

2.1 TRACLUS算法

原文将该算法概括如下:
Algorithm TRACLUS

2.2轨迹距离函数

由于DBSCAN算法是基于密度的算法,对于散点的聚类利用欧氏距离衡量就可以,但轨迹就不同如此。因此必须事先定义轨迹之间的距离。
给定任意的两条线段,其长度及方向不一定相同,如何衡量它们之间的相似度?
先从简单的开始,情况一:给定两条同等长度相互平行且两起点的连线或两终点的连线与这两条线段垂直,那么我们可以用它们之间的垂直距离 d 来衡量它们的相似度,距离越近就越相似,如果这两条线段完全重合就意味着其完全相同。
若在上面的基础上,情况二:将两条线段沿其方向错位或改变其中一条线段的长度,在同等 d 的情况一和二下,显然它们的相似度只用垂直距离是不够的,需要用水平方向的差别来衡量,即水平距离 d
若在情况二的基础上,情况三:将其中一条线段沿某一方向旋转,则两条线段的夹角越大,其相似度越小,因此又需要引入夹角距离 dθ 的概念。
原文对距离的定义就基于这种思想。
Distance Function
三者的定义如下:

d(Li,L
  • 15
    点赞
  • 161
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值