欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

轨迹聚类之分段聚类方法总结

发布时间:2024/3/24 编程问答 71 豆豆
生活随笔 收集整理的这篇文章主要介绍了 轨迹聚类之分段聚类方法总结 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

目录

    • 2.距离函数
      • 2.1 轨迹距离函数
    • 3.轨迹分段
      • 3.1 MDL原则
  • 参考资料

现有的轨迹聚类算法可分为两类:

  • 一种是基于整体的轨迹聚类,即将一条轨迹视为一个整体而对其不做分段,通过定义轨迹的相似度函数将其聚类,这样一条轨迹只能属于一个簇;
  • 另一种是基于分段的轨迹聚类,即将一条轨迹分为多段,分段的轨迹之和可以是原轨迹,也可以是原轨迹特征的抽取。之后再进行轨迹聚类,这样同一条轨迹可能分属于多个簇,可视的结果会出现分流与聚流的效果。

基于不同的应用场景会运用不同的算法,如果只从准确度上评价而不考虑其它因素,基于分段的轨迹聚类相对更好一此。因为它研究的粒度更细,而基于整体的轨迹聚类会丢失一些细节信息,举一个例子:
————————————————


如上图,有五条轨迹TRi(i=1,2,...5)TR_i(i=1,2,...5)TRi(i=1,2,...5),如果运用基于分段的聚类算法,则方框内的轨迹将聚为一簇;而如果是基于整体的聚类算法,由于五条轨迹最终的走向各不相同,因而很有可能五条轨迹归属于不同的类。然而忽略掉起始时的聚集状态是不合理的,显然在这种情况下基于分段的轨迹聚类更好一些。

基于此,原文提出了“分段及归组”的轨迹聚类框架,正如其名,算法分为两大步:

  • 分段:将轨迹进行分段以作为下一阶段的输入;
  • 归组:相似的线段归为一类。归类的算法采用基于密度的聚类算法,本文采用的是DBSCAN算法。
  • 2.距离函数

    2.1 轨迹距离函数

    由于DBSCAN算法是基于密度的算法,对于散点的聚类利用欧氏距离衡量就可以,但轨迹就不同如此。

    因此必须事先定义轨迹之间的距离。

    给定任意的两条线段,其长度及方向不一定相同,如何衡量它们之间的相似度?

    先从简单的开始,情况一:给定两条同等长度相互平行且两起点的连线或两终点的连线与这两条线段垂直,那么我们可以用它们之间的垂直距离 d⊥d_⊥d 来衡量它们的相似度,距离越近就越相似,如果这两条线段完全重合就意味着其完全相同。(一个衡量指标,即d⊥d_\perpd

    若在上面的基础上,情况二:将两条线段沿其方向错位或改变其中一条线段的长度,在同等 d⊥d_⊥d 的情况一和二下,显然它们的相似度只用垂直距离是不够的,需要用水平方向的差别来衡量,即水平距离d∥d_∥d。(两个衡量指标,即d⊥d_\perpdd∣∣d_{||}d∣∣

    若在情况二的基础上,情况三:将其中一条线段沿某一方向旋转,则两条线段的夹角越大,其相似度越小,因此又需要引入夹角距离 dθd_θdθ 的概念。(下图描述情况三,求LiL_iLiLjL_jLj的相似度,通过三个指标衡量,即d⊥d_\perpdd∣∣d_{||}d∣∣dθd_\thetadθ
    原文对距离的定义就基于这种思想。

    情况三

    3.轨迹分段

    轨迹分段是在原轨迹中选取一些特征点,利用特征点的连线来近似原轨迹。特征点是多指轨迹中角度变化较大的点。
    对轨迹的分段要保证两个性质:准确性和简洁性。
    准确性是指特征点不能太少,否则不足以概括轨迹特征;
    简洁性是指特征点要利用尽可能少的点来概括轨迹特征。
    这两个特性相互矛盾,因此算法要能够很好地平衡这两个特性。

    3.1 MDL原则

    原文采用信息压缩中广泛采用的标准来平衡:MDL(Minimum Description Length)原则。

    最小描述长度( MDL) 原理是 Rissane 在研究通用编码时提出的。

    其基本原理是对于一组给定的实例数据 D , 如果要对其进行保存 ,为了节省存储空间, 一般采用某种模型 H 对其进行编码压缩,然后再保存压缩后的数据。同时, 为了以后正确恢复这些实例数据,将所用的模型也保存起来。所以需要保存的数据长度( 比特数) 等于这些实例数据进行编码压缩后的长度加上保存模型所需的数据长度,将该数据长度称为总描述长度。最小描述长度( MDL) 原理就是要求选择总描述长度最小的模型。

    如果将贝叶斯网络作为对实例数据进行压缩编码的模型, MDL原理就可以用于贝叶斯网络的学习。该度量被视为网络结构的描述长度和在给定结构下样本数据集的描述长度之和。一方面,用于描述网络结构的编码位随模型复杂度的增加而增加 ; 另一方面, 对数据集描述的编码位随模型复杂度的增加而下降。因此,贝叶斯网络的 MDL总是力求在模型精度和模型复杂度之间找到平衡。构建贝叶斯网络首先定义一个评分函数, 该评分函数描述了每个可能结构对观察到的数据拟合, 其目的就是发现评分最大的结构,这个过程连续进行到新模型的评分分数不再比老模型的高为止。

    MDL原则包含两个部分:

  • L(H): 描述压缩模型(或编码方式)所需要的长度
  • L(D|H): 描述利用压缩模型所编码的数据所需要的长度
    原文中对两部分的定义如下:
    L(H)=∑j=1pari−1log2(len(pcjpcj+1))L(H)=\sum_{j=1}^{par_i -1}log_2(len(p_{c_j}p_{c_{j+1}}))L(H)=j=1pari1log2(len(pcjpcj+1))
    L(D∣H)=∑j=1pari−1∑k=cjcj+1−1{log2(d⊥(pcjpcj+1,pkpk+1))+log2(dθ(pcjpcj+1,pkpk+1))}L(D|H)=\sum_{j=1}^{par_i -1}\sum_{k=c_j}^{c_{j+1}-1}\{log_2(d_⊥(p_{c_j}p_{c_{j+1}}, p_{k}p_{k+1})) + log_2(d_\theta(p_{c_j}p_{c_{j+1}}, p_{k}p_{k+1}))\}L(DH)=j=1pari1k=cjcj+11{log2(d(pcjpcj+1,pkpk+1))+log2(dθ(pcjpcj+1,pkpk+1))}
  • L(D|H)中没有包含水平距离是因为对于闭合的两条线段,其水平距离为零。
    例如:

    参考资料

    [1] 轨迹聚类(一):分段及归组框架(Trajectory Clustering:A Partition-and-Group Framework)) 2016.3
    [2] 轨迹聚类(二):分段及归组框架(Trajectory Clustering:A Partition-and-Group Framework) 2016.3
    [3] 基于 DBTCAN 算法的船舶轨迹聚类与航路识别 2022.5
    [4] Hausdorff Distance(豪斯多夫距离) 2018.3
    [5] Hausdorff 距离 2020.3
    [6] Metric评价指标-图像分割之豪斯多夫距离(Hausdorff distance )
    [7] 最小描述长度(MDL)2012.12
    [8] 最小描述长度准则—Minimum Description Length 2017.5
    [9] 如何判断两条轨迹(或曲线)的相似度?2017.12
    [10] 轨迹相似性度量方法总结 2021.6
    [11] 相似性方法调研 2019.1

    总结

    以上是生活随笔为你收集整理的轨迹聚类之分段聚类方法总结的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。