轨迹相似度整理

这篇具有很好参考价值的文章主要介绍了轨迹相似度整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0 度量测量

给定相似性测量f和三条轨迹Ti,Tj和Ta

  • 如果f满足以下条件,那么称f为一个度量测量
    • 唯一性 
    • 非负性
    • 三角不等式
      • 轨迹相似度整理
    • 对称性

一些聚类算法(K-means,KNN)、一些数据结构(KD树、ball-Tree)都需要在度量空间中实现

1 基于点之间的距离

1.1 最近对距离 Closest-Pair Distance

从两条轨迹中找到最近的一对点,并计算它们之间的距离

轨迹相似度整理

 1.2 点对距离和 Sum-of-Pairs Distance

设A,B为点数相同的两条轨迹,其距离定义如下:

轨迹相似度整理

1.3 欧几里得距离

轨迹相似度整理

轨迹相似度整理

  •  优点:线性计算时间
  • 缺点:轨迹长度必须一样

1.4 DTW

轨迹相似度整理

 DTW 笔记: Dynamic Time Warping 动态时间规整 (&DTW的python实现) 【DDTW,WDTW】_UQI-LIUWJ的博客-CSDN博客

  • 缺点:对noise比较敏感 
    • 包括噪声在内的所有点都需要匹配

'Exact Indexing of Dynamic Time Warping'  VLDB 2002

1.4.1 DTW不是度量测量

 DTW 不满足轨迹相似度整理的举例

  • A=[1,1,1,2,2,2]
  • B=[1,1,2,2]
  • C=[2,2,2,1,1,1]

轨迹相似度整理

AB+BC=5 

AC=6

不满足三角不等式

1.5 LCSS 最长公共子序列

轨迹相似度整理

 文巾解题1143. 最长公共子序列_UQI-LIUWJ的博客-CSDN博客

轨迹相似度整理

  • 优点:对noise不敏感
    • 在欧几里得距离和DTW距离中,所有的点都必须匹配,即使它们是离群点
    • LCSS允许跳过一些点,而不是重新排列它们
  • 缺点:定义threshold比较困难(这里的threshold指的是,如果两点之间的距离小于这个threshold时,将被视为相同的一个点)

    DIscovering similar multidimensional trajectories, ICDE 2002

    • 轨迹相似度整理
    • 比如上图,在这一对threshold的限制下,最长公共弄子序列的长度为2
  • 另一个缺点是,它不区分具有相似公共子序列的轨迹(比如上上图,如果两个蓝色区域之间的白色区域长度差距很大,LCSS是不会察觉的)

轨迹相似度整理

1.5.1 LCSS 不是度量测量

LCSS 不满足三角不等式的例子

A:[1,2,3,4,5]

B:[3,4]

C:[1,2,3,4,5]

LCSS(A,C)=5,LCSS(A,B)=2,LCSS(B,C)=2

5≥2+2

 1.6  字符串编辑举例EDR

轨迹相似度整理

算法笔记:字符串编辑距离(Edit Distance on Real sequence,EDR)/ Levenshtein距离_UQI-LIUWJ的博客-CSDN博客

  • 优点:
    • 对噪声不敏感
    • 比LCSS好。EDR会根据两个匹配子轨迹之间的间隙长度对其进行惩罚,这使得EDR比LCSS更精确
  • 缺点:同LCSS,不好界定threshold 

''' Robust and fast similarity search formoving object trajectories' SigMod 2005

1.6.1 EDR 不是度量测量

EDR 不满足三角不等式的反例:

A=[0],B=[1,2],C=[2,3,3],距离阈值为1

EDR(A,B)=1(0次替换,1次插入)

EDR(B,C)=1(0次替换,1次插入)

EDR(A,C)=3(1次替换,2次插入)

1.6.2 python 实现

import numpy as np
def EDR(TR1,TR2,eps):
    m,n = len(TR1)+1,len(TR2)+1
 
    matrix = np.zeros((m,n))
    #matrix[i][j]表示 TR1还剩i个元素,TR2还剩j个元素时,他们的编辑距离
 
    for i in range(1,m):
        matrix[i][0] = i 
    for j in range(1,n):
        matrix[0][j] = j
    #这两个for循环表示,一个轨迹没有元素了,另一个轨迹还有n个元素,那么此时编辑距离为n(插入/删除n个值
 
    for i in range(1,m):
        for j in range(1,n):
            #print(TR1[i-1],TR2[j-1])
            if np.linalg.norm(TR1[i-1]-TR2[j-1])<eps:
                cost = 0
            else:
                cost = 1
            #判断两个轨迹对应位置的值是否一致
            
            matrix[i][j]=min(matrix[i-1][j]+1,matrix[i][j-1]+1,matrix[i-1][j-1]+cost)
            #删除,插入,替换,这三个操作哪个编辑距离小一点,就选哪个
 
 
    return matrix
 
 

traj1=np.array([[12960834.80288441,  4845269.46493596],
        [12960722.25887924,  4845260.76402278],
        [12960622.85057397,  4845250.75798203],
        [12960572.31152516,  4845244.52233853],
        [12960519.880045  ,  4845238.86675827],
        [12960456.87321322,  4845233.93625503],
        [12960381.84387644,  4845232.63112222],
        [12960317.0559328 ,  4845230.45590127],
        [12960236.34930199,  4845214.93933889],
        [12960191.93282517,  4845209.13876105],
        [12960127.36752052,  4845202.03305778],
        [12960066.25312008,  4845200.14787205],
        [12960045.32505582,  4845201.30798631],
        [12959982.98614098,  4845196.81254434]])
traj2=np.array([[12960127.36752052,  4845202.03305778],
        [12960066.25312008,  4845200.14787205],
        [12960045.32505582,  4845201.30798631],
        [12959982.98614098,  4845196.81254434],
        [12959879.57033405,  4845196.37750167],
        [12959835.15385723,  4845186.51653973],
        [12959837.26892755,  4845187.24161012],
        [12959814.89370991,  4845183.18121657],
        [12959813.33523704,  4845183.03620255],
        [12959809.55037435,  4845182.31113246]])

disEDR=EDR(traj1,traj2,10)
disEDR[-1][-1],disEDR
'''
(14.0,
 array([[ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.],
        [ 1.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.],
        [ 2.,  2.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.],
        [ 3.,  3.,  3.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.],
        [ 4.,  4.,  4.,  4.,  4.,  5.,  6.,  7.,  8.,  9., 10.],
        [ 5.,  5.,  5.,  5.,  5.,  5.,  6.,  7.,  8.,  9., 10.],
        [ 6.,  6.,  6.,  6.,  6.,  6.,  6.,  7.,  8.,  9., 10.],
        [ 7.,  7.,  7.,  7.,  7.,  7.,  7.,  7.,  8.,  9., 10.],
        [ 8.,  8.,  8.,  8.,  8.,  8.,  8.,  8.,  8.,  9., 10.],
        [ 9.,  9.,  9.,  9.,  9.,  9.,  9.,  9.,  9.,  9., 10.],
        [10., 10., 10., 10., 10., 10., 10., 10., 10., 10., 10.],
        [11., 10., 11., 11., 11., 11., 11., 11., 11., 11., 11.],
        [12., 11., 10., 11., 12., 12., 12., 12., 12., 12., 12.],
        [13., 12., 11., 10., 11., 12., 13., 13., 13., 13., 13.],
        [14., 13., 12., 11., 10., 11., 12., 13., 14., 14., 14.]]))
'''

1.7 ERP(实数惩罚编辑距离)

  • 上述基于编辑距离的测量方法(DTW\LCSS\EDR)都不是度量的
    • ——>索引、聚类、剪枝中往往用不了
  • ERP 不需要阈值参数,而是设置一个参考点r进行测量
    • 轨迹相似度整理

2 基于形状的距离

2.1 豪斯多夫距离

数学笔记/scipy 笔记:豪斯多夫距离(Hausdorff )_python 豪斯多夫距离_UQI-LIUWJ的博客-CSDN博客

 轨迹相似度整理

  •  缺点:对噪声敏感

The computational geometry of comparing shapes, Efficient algorithms, 2009

2.2 Frechet距离

算法笔记:Frechet距离度量_UQI-LIUWJ的博客-CSDN博客

The computational geometry of comparing shapes, Efficient algorithms, 2009

2.3 上述方法对比

轨迹相似度整理

 3 基于片段的距离

3.1 One Way Distance

  • 轨迹T1到T2的单边轨迹距离
    • T1中的点到T2的距离的积分结果,除以T1的距离
    • 轨迹相似度整理
    • 轨迹相似度整理
  • 轨迹T1和T2的对称双边距离
    • 轨迹相似度整理

    One way distance: for shape based similarity search of moving object trajectories, Geoinformatica 2008

3.2 多线位置距离(Locality In-between Polylines,LIP)

轨迹相似度整理

轨迹相似度整理

  • 表示两个轨迹的第i个交点,
  • 表示第i个交点和第i+1个交点之间所夹区域的面积

 轨迹相似度整理

  •   LIP方法很好理解,当某区域面积的周长占总长比重大时权重也自然就大;
    • 当Area均为0时,说明两条轨迹重合没有缝隙,LIP距离为0;
    • 当Area加权和大时,则说明两条轨迹之间缝隙较大,LIP距离也就大。
    • 此外,权重由区域周长占总长比重的大小而决定,也一定程度对抗了噪音点的干扰。

Similarity search in trajectory databases文章来源地址https://www.toymoban.com/news/detail-410321.html

3.3 EDwP

到了这里,关于轨迹相似度整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机视觉中的多样性: 相似性度量的实践与应用

    计算机视觉(Computer Vision)是人工智能领域的一个重要分支,主要关注于从图像和视频中抽取和理解有意义的信息。在计算机视觉任务中,相似性度量是一个重要的概念,它用于衡量两个特征向量之间的相似程度。随着计算机视觉技术的不断发展,我们需要更加准确、高效地衡

    2024年02月20日
    浏览(50)
  • 2023年第十五届华中杯赛题B 题 小学数学应用题相似性度量及难度评估

    B  题 小学数学应用题相似性度量及难度评估 某 MOOC 在线教育平台希望能够进行个性化教学,实现用户自主学习。在用户学习 时,系统从题库中随机抽取若干道与例题同步的随堂测试题,记录、分析学生的学习和答 题信息,并且课后会自动生成作业题(或练习题)。此外,系统

    2024年02月02日
    浏览(46)
  • 【2023华中杯数学建模】B 题 小学数学应用题相似性度量及难度评估详细建模方案及实现代码

    更新时间:2023-5-1 14:00 B 题 小学数学应用题相似性度量及难度评估 某 MOOC 在线教育平台希望能够进行个性化教学,实现用户自主学习。在用户学习时,系统从题库中随机抽取若干道与例题同步的随堂测试题,记录、分析学生的学习和答题信息,并且课后会自动生成作业题(或

    2024年02月06日
    浏览(55)
  • 图像检索技术研究:深度度量与深度散列在相似性学习中的应用比较与实践 - 使用Python与Jupyter环境

    引言 在计算机视觉领域,图像检索是一个长期存在并持续受到研究者关注的重要话题。随着大数据时代的到来,如何高效、准确地从海量数据中检索到相似的图像成为一个巨大的挑战。传统的检索方法在大数据环境下表现不佳,而深度学习技术的崛起为图像检索带来了新的机

    2024年02月12日
    浏览(44)
  • OpenCV书签 #结构相似性SSIM算法的原理与图片相似性实验

    结构相似性(Structural Similarity,简称SSIM算法) ,主要用于检测两张相同尺寸的图像的相似度、或者检测图像的失真程度,是一种衡量两幅图像相似度的指标。 给定两个图像 x 和 y,两张图像的结构相似性可按照以下方式求出: 结构相似性的范围为 -1 到 1。当两张图像一模一

    2024年01月24日
    浏览(42)
  • 如何计算2个矩阵的相似性?

    如下图所示,如何计算功能连接和结构连接的矩阵相似性? 原理 :把结构矩阵或者功能连接矩阵的上三角矩阵提取出来,然后利用squeeze把上三角矩阵转化为一列,然后计算相关性。 皮尔逊相关系数公式实际上就是在计算夹角余弦之前将两个向量减去各个样本的平均值,达到

    2024年02月13日
    浏览(69)
  • 图像质量评估算法SSIM(结构相似性)

    由于最近在阅读图像超分辨率方面的RCAN论文,里面涉及到了两幅图像之间的相似性,所以就引入了这个指标,并最终使用pyhton进行实现。结构相似性,是一种衡量两幅图像相似度的指标。该指标首先由德州大学奥斯丁分校的图像和视频工程实验室(Laboratory for Image and Video Eng

    2024年01月18日
    浏览(97)
  • 相似性搜索:第 7 部分--LSH 组合物

    Vyacheslav Efimov – Medium S 相似性搜索 是一个问题,给定一个查询,目标是在所有数据库文档中找到与其最相似的文档。         在数据科学中,相似性搜索经常出现在 NLP 领域、搜索引擎或推荐系统中,其中需要检索最相关的文档或项目以进行查询。有多种不同的方法可以

    2024年02月07日
    浏览(42)
  • 安全研究 # 二进制代码相似性检测综述

    本文参考: [1]方磊,武泽慧,魏强.二进制代码相似性检测技术综述[J].计算机科学,2021,48(05):1-8. (信息工程大学数学工程与先进计算国家重点实验室, 国家重点研发课题,北大核心) 代码相似性检测常用于 代码预测 、 知识产权保护 和 漏洞搜索 等领域,可分为 源代码相似性检测

    2024年02月02日
    浏览(40)
  • 无监督学习的集成方法:相似性矩阵的聚类

    在机器学习中,术语Ensemble指的是并行组合多个模型,这个想法是利用群体的智慧,在给出的最终答案上形成更好的共识。 这种类型的方法已经在监督学习领域得到了广泛的研究和应用,特别是在分类问题上,像RandomForest这样非常成功的算法。通常应用一些投票/加权系统,将

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包