论文笔记: Trajectory Clustering: A Partition-and-Group Framework

07 Sigmoid

使用类DBSCAN的思路对轨迹聚类

1 intro

1.1 轨迹聚类

  • 现有的轨迹聚类算法是将相似的轨迹作为一个整体进行聚类,从而发现共同的轨迹。
    • 但是这样容易错过一些共同的子轨迹(sub-trajectories)。
    • 而在实际中,当我们对特殊感兴趣的区域进行分析时,子轨迹就特别重要。
    • 图中有五条轨迹,在矩形中有一个共同的行为,用粗箭头表示。
    • 如果我们将这些轨迹作为一个整体来聚类,我们就无法发现共同的行为,因为它们最终向完全不同的方向移动
      • ——》作为一个整体来聚类会错过很多有价值的信息。

1.2  本文的思路

  • 本文提出TRACLUS算法,先将轨迹分段成线段,然后再对线段进行聚类,可以更准确地发现子轨迹。
  • 算法步骤分为分段(partitioning)和归组(grouping
    • 分段利用最小描述长度(minimum description length MDL)原理实现轨迹分段,将每一条轨迹最优的分为一组线段,这些线段输入到下一阶段。
    • 归组利用基于密度的线段聚类算法实现相似线段聚类。设计了一个距离函数来定义线段的密度
      • ——>基于密度的聚类方法是最适合用于线段的,因为它们可以发现任意形状的聚类,并可以滤波出噪声。可以很容易地看到,线段簇通常是任意形状的,而轨迹数据库通常包含大量的噪声

2 问题定义

  • 输入一组轨迹L=\{TR_1,\cdots,TR_{num_{tra}}\}
    • 一条轨迹是一组点的集合TR_i=p_1p_2\cdots p_{len_i},其中每一个点pj是一个d维的点(坐标),leni是这条轨迹的长度(点的数量)
    • 轨迹TRi的一条子轨迹是\mathrm{p}_{\mathrm{c}_1} \mathrm{p}_{\mathrm{c}_2} \cdots \mathrm{p}_{\mathrm{c}_{\mathrm{k}}}\left(1 \leq \mathrm{c}_1<\mathrm{c}_2<\cdots<\mathrm{c}_{\mathrm{k}}<\operatorname{len}_{\mathrm{i}}\right)
  • 输出:一组线段聚类O=\{C_1,\cdots,C_{num_{clus}}\}和每个线段聚类Ci的代表性轨迹
    • 一个cluster中是一组轨迹分段
      • 一个轨迹分段是一条线段p_ip_j (i<j),其中pi和pj都是从同一条轨迹中选择的点
    • 一条轨迹中的轨迹分段可能属于不同的多个聚类

3 模型

3.1 整体模型

3.2 轨迹距离函数

  • 对点集做聚类时,常用方法就是根据两点之间的欧氏距离来判断是否一类。
  • 在线段聚类时,论文使用的距离函数是由三个部分组成
    • 垂直距离d_\perp
    • 平行距离d_{||}
    • 角度距离d_\theta

 

 3.2 轨迹分段

  • 轨迹分段的首要目标是找到轨迹行为迅速变化的点(就是角度变化大的点),称之为特征点。
    • 从轨迹TR_i=p_1p_2\cdots p_{len_i}中确定了一组特征点\left\{\mathrm{p}_{\mathrm{c}_1}, \mathrm{p}_{\mathrm{c}_2}, \mathrm{p}_{\mathrm{c}_3}, \cdots, \mathrm{p}_{\mathrm{c}_{\mathrm{par}}}\right\}\left(\mathrm{c}_1<\mathrm{c}_2<\mathrm{c}_3<\cdots<\mathrm{c}_{\mathrm{par}_{\mathrm{i}}}\right)
    • 然后轨迹TRi分每个特征点分段,每个分段用两个连续特征点所连的线段表示
    • ——>TRi被分成一组(pari-1)个轨迹分段\{p_{c_1}p_{c_2},p_{c_2}p_{c_3},\cdots,p_{c_{par_{i-1}}c_{par}}\}

3.2.1 轨迹分段原则

  • 一个轨迹的最优分段要具有两个属性:
    • 准确性
      • 轨迹与其一组轨迹分段之间的差异应该尽可能小
        • ——>特征点不能太少。
    • 简洁性
      • 轨迹分段的数量应该尽可能少
  • 这两个属性在确定特征点数目时是相互矛盾的,这就需要调整算法以达到平衡

3.2.2 最小描述长度原则(Minimum Description Length,MDL)

  •  最小描述长度( MDL) 原理是通用编码领域研究的内容。
    • 基本原理是对于一组给定的数据 D ,如果要对其进行保存 ,为了节省存储空间, 一般采用某种模型对其进行编码压缩,然后再保存压缩后的数据。
    • 同时, 为了以后正确恢复这些实例数据,将所用的模型也保存起来。
    • ——>所以需要保存的数据长度( 比特数) 等于 数据进行编码压缩后的长度  加上 保存模型所需的数据长度,将该数据长度称为总描述长度。
    • 最小描述长度( MDL) 原理就是要求选择总描述长度最小的模型
  • MDL的代价有两部分L(H)和L(D|H)
    • H代表压缩模型,D代表数据
    • L(H)是描述压缩模型(或编码方式)所需要的长度
    • L(D∣H)是描述利用压缩模型所编码的数据所需要的长度
  • 类比到轨迹分段中,如下:
    • L(D|H)只考虑角度距离和垂直距离,不考虑平行距离
  •  假设一条轨迹TR_i=p_1p_2\cdots p_{len_i},一组特征点\left\{\mathrm{p}_{\mathrm{c}_1}, \mathrm{p}_{\mathrm{c}_2}, \mathrm{p}_{\mathrm{c}_3}, \cdots, \mathrm{p}_{\mathrm{c}_{\mathrm{par}}}\right\}\left(\mathrm{c}_1<\mathrm{c}_2<\mathrm{c}_3<\cdots<\mathrm{c}_{\mathrm{par}_{\mathrm{i}}}\right)

    • L(H)表示为

    • L(D|H)表示为:

      ——>因此,要得到最优的分段策略,那就是要最小MDL= L(H)+L(D|H),这能够准确平衡简洁性和准确性

3.2.3 近似计算方法

  • 但是因为要考虑到轨迹点的每一个子集,所以计算量是非常大
    • 论文引入一个近似计算的方法,关键思想是将局部最优的集合视为全局最优
  • MDL_{par}(p_i,p_j)表示pi和pj是 路径分段pipj之间仅有特征点时(也就是pipj之间的子线段都划归到pipj线段上了),pipj二者之间轨迹的MDL
  • MDL_{nopar}(p_i,p_j)表示pi和pj之间没有特征点时的MDL
    • 此时pipj之间就是原始轨迹,所以只有L(H),没有L(D|H)
  • 局部最优解是:当满足对于任意i<k≤j的k,都有MDL_{par}(p_i,p_k) \le MDL_{nopar}(p_i,p_k)时的最长pipj
    • 不等式的意思是:pi~pk的点,视作pipk轨迹分段对应的MDL,比pipk的点保持为原始轨迹对应的MDL小
      • 也就是说pipk是一个最优分段
      • 换句话说就是pk作为特征点的MDL比不作为特征点的代价小,那么pk可以成为一个特征点
    • 局部最优解找的就是距离i最远的、可以作为特征点的点j

算法如下

 

所以此时p4就是局部最优解 

3.3 聚类 

3.3.1 基于密度聚类的概念

将DBSCAN中关于点的聚类扩展到关于线段的聚类

  • 几个notation:
    • D是所有线段的集合
    • epsilon是两个线段距离的一个阈值
    • MinLns是聚类集合的最小线段数量
线段L_i \in D的ε邻域

核心线段

核心线段就是,和线段Li相距小于ε的线段数量 大于MinLns条

对比DBSCAN相应概念:如果数据点周围至少包含“minPoints”个点,则该数据点是核心点

直接密度可达

Lj是核心线段+Li在Lj的ε邻域内——>Li直接密度可达Lj

对比DBSCAN相应概念:

密度可达

存在一组线段L_i,L_{i+1},L_{i+2},\cdots,L_{j-1},L_j

其中Lk直接密度可达L_{k+1}(即L_{k+1}是核心线段)

那么Li密度可达Lj

对比DBSCAN相应概念:

密度连接

当存在一个核心点Lk,使得线段Li和线段Lj都密度可达Lk

那么Li 密度连接Lj

对比DBSCAN概念:

,mn

 

 

3.3.2 密度连接集

3.3.3 线段聚类方法

 

  • 有别于DBSCAN的就是14~16行,即并非所有的密度连接集都是一个线段聚类
    • 需要考虑这一簇的线段是从几条轨迹中得来的,如果小于阈值,那么这一簇线段不能被视为一个聚类
      • 举一个极端情况,一个簇中所有的线段都是从一个轨迹中提取出来的
    • ——>14~16行就是校验一个簇中轨迹的基数
      • |PTR(C_i)|=|\{TR(Lj)| \forall Lj \in C_i\}|

3.3.4 聚类算法的扩展

  • 每条线段可以有自己的权重
    • ——>此时可以修改 确定ε邻域基数 |N_\epsilon(L)|的方法,不再是简单地计算线段数量,而是计算线段的加权数量

 

参考内容:

GPS轨迹聚类算法TRACLUS介绍(一)_NieBP的博客-CSDN博客

GPS轨迹聚类算法TRACLUS介绍(二)_traclus-master_NieBP的博客-CSDN博客

 GPS轨迹聚类算法TRACLUS介绍(三)_NieBP的博客-CSDN博客

GPS轨迹聚类算法TRACLUS介绍(四)_NieBP的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/23043.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis主从复制,哨兵模式和集群模式

一、主从复制 1、主从复制-哨兵-集群 主从复制&#xff1a;主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份&#xff0c;以及对于读操作的负载均衡和简单的故障恢复。缺陷&#xff1a;故障恢复无法自…

服务器被勒索病毒攻击怎么办,如何进行勒索病毒解密与预防工作?

在当今社会中服务器已经成为企业关键数据存储和传输的重要载体&#xff0c;同样也成为黑客攻击和勒索病毒的首要目标。一旦服务器被勒索病毒攻击&#xff0c;企业的正常运转与经济利益和核心数据都将受到威胁。下面将为大家介绍一下服务器被勒索病毒攻击后应该采取怎样的措施及…

软件系统三基座之一:权限管理

软件系统三基座包含&#xff1a;权限管理、组织架构、用户管理。 何为基座&#xff0c;即是有了这些基础&#xff0c;任一相关的“建筑”就能逐步搭建起来。 万丈高楼平地起 一、为什么要权限管理 权限管理&#xff0c;一般指根据系统设置的安全规则或者安全策略&#xff0c;…

【013】C++数组之一维数值数组和二维数值数组

一维数值数组和二维数值数组 引言一、一维数值数组1.1、概念1.2、一维数值数组的定义1.3、一维数值数组的初始化1.4、一维数值数组的元素操作1.5、使用示例 二、二维数值数组2.1、概述2.2、二维数值数组的初始化2.3、二维数值数组的元素操作2.4、使用示例 总结 引言 &#x1f4…

Windows 安装 GCC

文章目录 GCC 是什么&#xff1f;GCC 和 gcc 什么关系&#xff1f;Windows 安装 GCC选型下载安装配置环境变量验证 参考文献 GCC 是什么&#xff1f; GCC&#xff08;GNU Compiler Collection&#xff09;是一个开源的编译器套件&#xff0c;由 GNU 项目开发和维护。 GNU 编译…

讯飞星火_VS_文心一言

获得讯飞星火认知大模型体验授权&#xff0c;第一时间来测试一下效果&#xff0c;使用申请手机号登录后&#xff0c;需要同意讯飞SparkDesk体验规则&#xff0c;如下图所示&#xff1a; 同意之后就可以进行体验了&#xff0c;界面如下&#xff1a; 讯飞星火效果体验 以下Promp…

数据结构【链表】看完还怕拿不下链表?

✨Blog&#xff1a;&#x1f970;不会敲代码的小张:)&#x1f970; &#x1f251;推荐专栏&#xff1a;C语言&#x1f92a;、Cpp&#x1f636;‍&#x1f32b;️、数据结构初阶&#x1f480; &#x1f4bd;座右铭&#xff1a;“記住&#xff0c;每一天都是一個新的開始&#x1…

“饶派杯”XCTF车联网安全挑战赛战队巡礼!

2023年5月31日&#xff0c;“饶派杯” XCTF车联网安全挑战赛将于江西省上饶市重磅开赛。本届大赛由江西省委网信办、江西省工信厅、上饶市人民政府主办&#xff0c;旨在深入贯彻落实国家网络强国和交通强国战略部署&#xff0c;推动智能网联汽车技术与产业发展、加快该领域人才…

React项目搭建

一、项目搭建&#xff08;不采用vite方式&#xff09; 使用create-react-app生成项目 npx create-react-app pc 进入根目录 cd pc 启动项目 npm start 调整项目目录结构 /src/assets 项目资源文件&#xff0c;比如&#xff0c;图片 等/components 通用组件/pag…

详细分析置换算法

对于操作系统而言&#xff0c;虚拟空间是非常大的&#xff0c;我们往往无法直接将如此大的空间装入内存&#xff0c;而即使我们采用多级页表与段页式存储即使&#xff0c;也仅仅只是节省了页表的大小&#xff0c;如此将如何多的物理页装进内存仍然是一个问题&#xff0c;为此科…

【MySQL学习】MySQL表的复合查询

文章目录 前言一、案例准备二、基本查询三、多表查询四、子查询4.1 单行子查询4.2 多行子查询4.3 多列子查询4.4 FROM子句中的子查询4.5 合并查询4.5.1 UNION4.5.2 UNION ALL 五、自连接六、内外连接6.1 内连接6.2 外连接6.2.1 左外连接6.2.2 右外连接 前言 对MySQL表的基本查…

【容器化应用程序设计和开发】2.7 云原生开发工具和框架

2.7 云原生开发工具和框架 今天我们就简单来讲一下云原生下用到的开发工具和一些基本的框架。云原生开发工具和框架是为了支持现代化的应用程序开发&#xff0c;能够简化云原生应用程序的构建、部署、管理和维护。下面是一些常见的云原生开发工具和框架&#xff1a; Kubernetes…

为什么别人家的ChatGPT比我家的更聪明?

文章目录 引子使用技巧技巧1&#xff1a;使用分隔符技巧2&#xff1a;结构化输出技巧3&#xff1a;整理操作步骤技巧4&#xff1a;做示范技巧5&#xff1a;给定具体的步骤技巧6&#xff1a;生成摘要技巧7&#xff1a;情感分析 好问题的三要素总结 引子 你有没有发现&#xff0…

python+Django音乐播放器网站系统0tr3w

音乐网站系统的后台开发目标是以信息管理系统的管理和开发方法&#xff0c;用目前现有的新技术进行系统开发&#xff0c;提供后台管理员高度友好的界面操作以及迅捷的信息处理。而前台的开发目标是以用户的需求作为主导&#xff0c;提供对用户而言非常友好的界面操作环境以及完…

2023年第十五届B题电工杯初步解题思路

第十五届“中国电机工程学会杯”全国大学生 电工数学建模竞赛题目 B题 人工智能对大学生学习影响的评价 人工智能简称AI&#xff0c;最初由麦卡锡、明斯基等科学家于1956年在美国达特茅斯学院开会研讨时提出。 2016年&#xff0c;人工智能AlphaGo 4:1战胜韩国围棋高手李世石…

(学习日记)AD学习 #2

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

航空公司预订票数学建模论文

航空公司预订票数学建模论文篇1 试谈机票订票模型与求解 一、概述 1. 问题背景描述 在激烈的市场竞争中&#xff0c;航空公司为争取更多的客源而开展的一个优质服务项目是预订票业务,本模型针对预订票业务&#xff0c;建立二元规划订票方案&#xff0c;既考虑航空公司的利润最大…

利用qsort排序

一、简单排序10个元素的一维数组 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:6031) #include<stdio.h> #include<stdlib.h> void print_arr(int arr[], int sz) {int i 0;for (i 0; i < sz; i){printf("%d ", arr[i]);}printf("…

开源赋能 普惠未来|QUICKPOOL诚邀您参与2023开放原子全球开源峰会

QUICKPOOL算力调度系统的诞生和发展&#xff0c;为广大的算力领域从业者和技术开发者&#xff0c;提供了一条中国技术路线&#xff0c;并与IBM LSF、SLURM、PBS、SGE等产品&#xff0c;共同助力全球算力发展。QUICKPOOL算力调度系统成熟、稳定&#xff0c;具备“超算&智算”…

服务高可用保障:服务限流,Nginx实现服务限流

一、前言 1.1什么是限流&#xff1f; 限流存在于高可用服务中。 用于高可用的保护手段&#xff0c;主要包括&#xff1a;缓存&#xff0c;降级&#xff0c;限流 限流&#xff1a;只允许指定的事件进入系统&#xff0c;超过的部分将被拒绝服务&#xff0c;排队或者降级处理。 …