如何在 python 中的 3 个或更多信号之间应用/实现动态时间扭曲 (DTW) 或快速动态时间扭曲 (FastDTW)?

问题描述

在时间序列分析中,动态时间扭曲(DTW)是衡量两个时间序列之间相似性的算法之一,这两个时间序列的速度可能不同。 Fast DTW 是一种更快的方法。我想知道如何不仅在 2 个信号之间而且在 3 个或更多信号之间实现这种方法。

distance,warp_path = fastdtw(series2,series1,dist=euclidean)

解决方法

您本质上需要构建一个矩阵,在该系列的所有可能组合上评估 FastDTW 算法。

import fastdtw
import scipy.spatial.distance as sd

def my_fastdtw(sales1,sales2):
    return fastdtw.fastdtw(sales1,sales2)[0]

distance_matrix = sd.pdist(sales,my_fastdtw)

您可以查看此线程以获取有关如何操作以及其他可能性的参考:Efficient pairwise DTW calculation using numpy or cython

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...