弗雷歇distance&DTW(动态时间规整)算法(附部分代码)

文章介绍了弗雷歇距离的概念,作为衡量两个序列匹配后最大差异的指标,并探讨了不同长度序列的匹配问题。接着,详细阐述了动态时间规整(DTW)算法,用于评估序列元素的对应关系和相似度,包括锁步度量和弹性度量的概念。文中还提供了DTW算法的Python实现示例,以及弗雷歇距离的计算方法,强调了在序列匹配中的最小距离路径寻找。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

1、理论知识
1.1 什么是弗雷歇距离,它是用来干什么的?

费雷歇distance是求两个序列匹配之后的最大距离,这里需要明确a)两个序列;b)匹配过程;c)最大距离的含义。
a)两个序列的长度可以不同
b)匹配的过程可以是一一对应或者是一对多,这里可以这样理解:(小明拉着他家的狗旺财,在一条笔直的道路上玩耍,假设小明每走一步,旺财也会走一步,这个时候匹配的点就是一一对应的;当小明停下来捡狗屎的时候,如果旺财没有静止的话,旺财走过的所有点与小明当前所在的点就是多对一的关系)
c)最大距离可以理解为上述小明手里狗绳的长度,为什么狗可以走的很远也可以走得很近,因为绳子可能是弹簧绳(笑)。
思考如何实现两个不同长度的序列如何匹配:这里匹配的难点是一对多如何匹配。

1.2 DTW的概念以及算法

引入概念DTW(动态时间规整)这个算法是评估两个序列元素之间的对应关系,根据两个序列元素距离评估两个序列的相似度。这里DTW的作用和弗雷歇距离的是非常相似的,都是评价两个序列之间法的相似程度。
那么DTW是如何进行两个序列的匹配的:这里解释两个匹配中的概念(锁步度量:一对一的匹配;弹性度量:一对多的匹配)。

  1. DTW算法要求: 第一个点和第一个点匹配,最后一个点和最后一个点匹配
  2. 单向对应,不能回头(就是只能和自己相邻的两个点对应,不能越过已经链接的匹配进行对应)
  3. 一一对应,不能为空(这里的一一对应是,每个点都要有对应的点,不是严格意义上的一一对应)
  4. 对应之后,距离最近

bilibili关于DWT讲解

在这里插入图片描述
DTW算法中匹配算法,不需要实现绝对的两个序列的点之间一一对应,这里使用两个序列,一维数点进行举例,如上图所示,1)需要一个计算distance的function这里使用两个点的差的绝对值。2)然后两个序列的点一一对应,计算出每个点的dist然后生成一个m*n的矩阵。3)遍历这个矩阵,获得最小距离的路径path以及最小mean,code如下:

import numpy as np


def euc_dis(a, b):
    return abs(a-b)


def fill_matrix(a: np.array, b: np.array):
    l1 = len(a)
    l2 = len(b)
    dis_all = np.ones((l1, l2)) * -1
    dis_all[0, 0] = euc_dis(a[0], b[0])
    for i in range(1, l1):
        dis_all[i, 0] = euc_dis(a[i], b[0]) + dis_all[i-1, 0]
    for j in range(1, l2):
        dis_all[0, j] = euc_dis(a[0], b[j]) + dis_all[0, j-1]

    for i in range(1, l1):
        for j in range(1, l2):
            if dis_all[i, j] < 0:
                dis_all[i, j] = euc_dis(
                    a[i], b[j]) + min(dis_all[i-1, j], dis_all[i, j-1], dis_all[i-1, j-1])

    return dis_all, l1, l

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值