目录

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

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

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

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


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

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

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

2.距离函数

2.1 轨迹距离函数

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

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

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

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

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

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

情况三

3.轨迹分段

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

3.1 MDL原则

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

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

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

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

MDL原则包含两个部分:

  1. L(H): 描述压缩模型(或编码方式)所需要的长度
  2. 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=1∑pari​−1​log2​(len(pcj​​pcj+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(D∣H)=j=1∑pari​−1​k=cj​∑cj+1​−1​{log2​(d⊥​(pcj​​pcj+1​​,pk​pk+1​))+log2​(dθ​(pcj​​pcj+1​​,pk​pk+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

轨迹聚类之分段聚类方法总结相关推荐

  1. SCS【7】单细胞转录组之轨迹分析 (Monocle 3) 聚类、分类和计数细胞

    点击关注,桓峰基因 桓峰基因公众号推出单细胞系列教程,有需要生信分析的老师可以联系我们!首选看下转录分析教程整理如下: Topic 6. 克隆进化之 Canopy Topic 7. 克隆进化之 Car ...

  2. R语言Kmeans聚类、抽取聚类簇:fpc包clusterboot函数通过bootstrap重采样的方法评估Kmeans聚类的稳定性、fpc包的kmeansruns函数通过CH准则和ASW获取最优K值

    R语言Kmeans聚类.抽取聚类簇:fpc包的clusterboot函数通过bootstrap重采样的方法评估Kmeans聚类的稳定性.fpc包的kmeansruns函数通过Calinski-Hara ...

  3. python分层聚类集群合并_24、python分层聚类案例(scipy方法)

    目录 1.分层聚类算法 2.方法 3.分析步骤 4.案例 1.分层聚类算法 层次聚类算法又称为树聚类算法,它根据数据之间的距离,透过一种层次架构方式,反复将数据 进行聚合,创建一个层次以分解给定的数据 ...

  4. 论文研读-文献聚类可视化-文献聚类结果可视分析方法研究

    文献聚类结果可视分析方法研究 1 论文概述 1.1 摘要 1.2 引言 1.3 脉络 2 可视分析框架 2.1 框架概述 2.2 框架组成 3 可视化设计 3.1 语料结构可视化 3.2 语料内容可视 ...

  5. K-Means算法、层次聚类、密度聚类及谱聚类方法详述

    1.聚类算法概述 (1)什么是聚类? 聚类就是对大量未知标注的数据集,按照数据内部存在的数据特征将数据集划分为多个不同的类别,使类别内的数据比较相似,类别之间的数据相似度比较小,属于无监督学习. 聚类 ...

  6. 了解聚类是什么。聚类方法:k-means、核聚类、层次聚类、谱聚类

    聚类 1.什么是聚类 2.聚类方法 2.1 划分式聚类方法 k-means k-means++ bi-kmeans 基于密度的方法 DBSCAN OPTICS算法 层次化聚类算法 核聚类 支持向量聚类 ...

  7. 聚类的方法(层次聚类,K-means聚类)

    所谓聚类,就是将相似的事物聚集在一 起,而将不相似的事物划分到不同的类别的过程,是数据分析之中十分重要的一种手段.比如古典生物学之中,人们通过物种的形貌特征将其分门别类,可以说就是 一种朴素的人工聚类 ...

  8. 学习笔记1 三大聚类方法:K-means聚类、层次聚类、DBSCAN聚类

    学习笔记1:三大聚类方法:K-means聚类.层次聚类.DBSCAN聚类 文章目录 前言 一.K-means聚类 操作过程 二.层次聚类 操作过程 三.DBSCAN聚类 操作过程 总结 前言 在样本数 ...

  9. 聚类之层次聚类、基于划分的聚类(…

    5.聚类之层次聚类.基于划分的聚类(k-means).基于密度的聚类.基于模型的聚类 目录(?)[-] 1.      一层次聚类 1.      层次聚类的原理及分类 2.      层次聚类的流程 ...

最新文章

  1. android 设置view亮度,android ImageView亮度变化
  2. MED-V服务器部署,MED-V服务器系列之一
  3. 我是这样用extern的...
  4. 使用现代化 C# 语法简化代码
  5. Base64编码及其作用
  6. Command line is too long. Shorten command line for Doc.generateAsciiDocs or
  7. Linux环境下查看CPU资源的命令
  8. 整理struct sockaddr和struct sockaddr_in
  9. 从支付宝SDK的支付流程理解什么是公钥和私钥,什么是加密和数字签名
  10. 几款网络测试工具总结
  11. 如鹏网.Net基础2 第六章:MYSQL
  12. 数学专业参考书——学数学的必看
  13. 十月上旬百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题)
  14. 网络安全专家教你设置史上最安全的WiFi密码
  15. Hadoop十年解读与发展预测
  16. 转:我在淘宝这7年(四)
  17. sqlitestudio和mysql_sqlitestudio怎么用 sqlitestudio使用方法图文详解
  18. cnpm不是内部命令的解决方案:配置环境变量【推荐】
  19. Ninth season twelfth episode,Phoebe fed a bunch of rats!!!!!!
  20. 一网打尽Kafka常用命令、脚本及配置,宜收藏!

热门文章

  1. 高中优质计算机课ppt课件ppt课件ppt课件ppt课件ppt课件,高中数学课一等奖课件.ppt...
  2. ShaderGraph——全息效果
  3. 【首次分享】企业级车载系统开发指南+项目实战(附源码)
  4. RTT对MALI GPU的支持思路
  5. 游戏UI框架设计(四) : 模态窗体管理
  6. java读取中文分词工具(三)
  7. c++进阶篇 c++实现员工管理系统
  8. python接入微信支付_干货分享:微信跨境支付接入全流程
  9. 国家基础地理信息系统数据下载服务
  10. “FCoE全解系列”之增强型以太网技术