跳转至

3. 轨迹聚类综述#

轨迹聚类的方式总的来说有三大类:无监督的、有监督的、半监督的。轨迹聚类能够探知时空数据的潜在信息,并且能有很多的实际应用场景。比如:物体移动预测、交通监控、活动理解、异常检测、三维重建等。

一条轨迹数据的基本构成可以看做是
Trajectory = (Tr_1, Tr_2, ....Tr_n)
其中每个Tr_i=(x_i,y_i,t_i, 其他信息), 其他信息可能包括速度、方向、加速度等等。
为了进行聚类,必须要衡量轨迹之间的相似性,而不同轨迹数据面临采样不一致、长短不同等问题。所以在聚类开始之前会有很多的前期预处理工作。

3.1 相似性预处理#

对轨迹聚类前期的准备工作主要是对数据进行变换。主要有如下步骤:

要求轨迹长度相同的-轨迹transformation
对于要求轨迹长度相同的才能计算相似性的方法,比如欧式距离,就需要首先将两条轨迹进行变换,或者是投影到另一个子空间。

(1) transformation 方法
* linear transformation. 将轨迹表示成basic trajectory的线性组合
* curve fitting,转到参数空间, e.g B-spline curve.
* vector fields
* PCA
* DFT 离散傅里叶变换

(2)重抽样方法
但是会有信息损失,需要加稀疏正则

(3)sub-trajectory.
需要提前对轨迹进行segmentation,比如根据changing point或者是速度、方向等。 这里有一些常用的轨迹切分方法:MDL最小描述长度,DP算法,MBR(minimum bounding rectangles)。 此外还有基于region进行切分的

(4) 根据poi点。 比如 A survey of vision-based trajectory learning and analysis for surveillance。包括进出门、逗留等。还可以对points设置不同的重要性Dense scene reconstruction with points of interest

(5) Scale-invariant Features??
一些刻画曲线的统计指标信息吧。 HOG(histograms of oriented gradients), HOF(histograms of optical flow)

(6) 其他
'String-based feature representation for trajectory clustering'中采样了网格化的方法,将轨迹映射到了网格上,将数字字符化。
首先利用DP算法将每条轨迹都搞成一样长度的

基于字符的距离度量方式有:编辑距离、q-grame based距离、

3.2距离/相似性度量#

数据相同长度:
* 欧式距离

可以不同长度:

  • hausdorff distance 每个点到另一条轨迹的最短距离的最大值

  • Bhattacharyya distance 是用来衡量两个概率分布是否相同的
    D(p,q)=-ln(\sum \sqrt{p_iq_i})

  • Fréchet distance(弗雷歇距离) 狗绳距离

  • DTW

  • LCSS 最长公共子序列

其他:
* SSPD

T1上的点p到T2 的距离定义为:min(d(p,q)), q属于T2.而D_{SPD}(T_1, T2)= mean(D(p, T2))

从数据类型上来看主要包括:数值型和string型,数值型的主要是location的(x,y)坐标,string型的主要是根据(x,y)映射后的loc信息,比如poi点等

对距离的汇总比较

3.3 聚类-无监督#

方法 算法举例 参考
partition based

(1) densely based
DBSCAN ,比如对于sub-trajectory
KMEANS ,FCM(fuzzy C-MEANS)

(2)层次聚类

  • agglomerative clustering 自下而上,以及在此基础上出现的HITS
  • divisive clustering 自上而下,以及在此基础上出现的Test-and-Divide (TAD)

(3) 谱聚类
计算效率快,但是只适合同长度的。是一种基于图论的方法。对于一个图G=G(V,E),其中V={v1,v2...vn}即是顶点的集合,E是边的集合,即E={w_ij}表示顶点i与顶点j之前的权重。

谱聚类的基本想法就是把所有的数据看做空间中的点,通过定义边之前的权重,然后进行切图,将距离较近的点切在一起,距离较远的点分开。所以说是一种基于图的聚类。

对于邻接矩阵W的构建,一般是根据相似矩阵𝑆来获得邻接矩阵𝑊。-w231

聚类步骤:
* 计算图的Laplacian矩阵L=D-W (D为度的对角矩阵,W为边的权重矩阵)
* 对Laplacian矩阵进行特征值分解,取其前个特征值对应的特征向量,构成的特征向量矩阵;
* 利用K-Means聚类算法对上述的的特征向量矩阵进行聚类,每一行代表一个样本点。

(4)神经网络
基于SOM(自组织映射网络)

(5) Co-Occurrence Decomposition

Trajectories are viewed as a bags of words where similar bags contain similar words。该方法需要提前定义a set of vocabulary。
https://iksinc.online/tag/co-occurrence-matrix/

参考资料#

相关学者 Brendan Tran Morris https://ieeexplore.ieee.org/author/37391430100

  1. A survey on trajectory clustering analysis
  2. Review & Perspective for Distance Based Trajectory Clustering