概述
在日常生活中很多场景应用到了轨迹相似度的计算,如:地图路线匹配、发现新冠病毒易感人群等。目前主要使⽤的相似性分析⽅法可以分为基于规整的方法(包括动态时间规整(DTW)、最⻓公共⼦序列(LCSS)和基于真实序列的编辑距离(EDR)等)和基于形状的⽅法(包括 Hausdorff 距离、单向距离 (OWD) 和 Fréchet距离等)。这些传统⽅法必须计算采样点之间的距离,计算复杂,计算量⼤。
除以上方法外有更快更简单称为细胞相似度(C-SIM)的方案。C-SIM对于低频采样的轨迹准确度非常高。C-SIM核心思想是计算两条轨迹细胞序列之间的重叠比例,随着细胞直径的不断增加相似度也会随之增大,根据具体场景选择相对应的直径对相似度计算很有必要。
1. 最长公共子序列(LCSS)
LCSS在GPS轨迹的处理上主要考虑的是点的相似度,如果两点之间的距离小于常数 ε,则认为两点可以匹配;且距离指的是两个GPS点的球面距离;两条轨迹相似的点数越多则两条轨迹越相似。
距离阈值 ε 通常设置在 10 到 60 m 之间。
问题:由于路线轨迹抽稀,轨迹数据中的噪声以及异常点问题,距离阈值ε不易确定。
算法核心逻辑:
最长公共子序列算法轨迹相似度
2. 动态时间规划(DTW)
DTW的思想是自动规整两个序列,并在时间轴上进行局部的缩放对齐,以使其形态尽可能一致,从而得到最大可能的相似性。DTW将两条轨迹的点进行多对多的映射,从而较为高效地解决数据不齐的问题。DWT距离就是所有最优匹配轨迹点间距离的累加和。DTW 对噪声很敏感。
问题:目前序列距离必须互相参照,比如只能知道两个序列和同一个序列之间,哪两个序列更为相似,序列距离单调递增,无法单纯的判断两个序列的相似程度。
算法核心逻辑:
这里结果返回扭曲距离的平均值,即根据平均距离来衡量轨迹额度相似度
动态时间规划算法轨迹相似度
3. 基于编辑距离(EDR)
EDR基于编辑距离来度量两个序列间的相似程度。给定两个序列A、B,A和B之间的编辑距离是指将A中的数据点通过插入、删除和替换操作变换成B所需要的操作次数。
问题:由于路线轨迹抽稀,轨迹数据中的噪声以及异常点问题,距离阈值ε不易确定。
算法核心逻辑:
编辑距离算法轨迹相似度
4. 细胞相似性(CSIM)
CSIM是一种仅考虑两条轨迹所经过区域的相似性度量方案。CSIM使用一个正方形(3 x 3)网格结构进行膨胀,然后利用类似Jaccard系数的方式测量网格单元总数中有多少个共同的网格单元。该算法的主要优点是具有线性时间复杂度,且结果不受点偏移量的影响。
算法核心逻辑:
细胞算法轨迹相似度
CSIM通过将轨迹点映射到规则的⽹格单元上来提取代表性轨迹。不同的单元格⼤⼩对轨迹提取结果的准确性有显著影响。如果单元尺⼨太⼤,轨迹会被过度压缩,关键特征会 变得模糊。相反,过⼩的⽹格单元尺⼨会增加代表性轨迹中的单元数量并增加计算负荷。需要根据用户历史Log数据来分析寻找最佳的细胞⼤⼩。
总结
基于对以上算法的分析与部分轨迹测试,EDR,LCSS,DTW都是基于点距离计算的算法,实际用户轨迹数据有噪声和异常点问题且路线轨迹经过了抽稀,距离阈值ε的取值比较难测试效果不佳;CSIM是基于网格的算法主要考虑轨迹与网格的关系比较推荐。