问题标签 [dtw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
100 浏览

r - R中的代理::dist

我有一个由四个不同长度的时间序列组成的矩阵。我想使用 proxy::dist 实现的动态时间扭曲来比较它们以创建距离矩阵。在https://www.rdocumentation.org/packages/dtw/versions/1.22-3/topics/dtwDist的 dtwDist 页面上,它显示“dtwDist 命令是包代理的 proxy::dist() 功能的同义词; DTW 距离注册为 method="DTW"(见下面的例子)。” 据此,我假设下面显示的代码使用欧几里德距离计算 dtw 距离以优化扭曲路径。

但是,当我尝试使用以下代码使用 dtwdist 进行检查时:

我得到两组不同的距离,如下所示:

在此处输入图像描述

我如何知道 dtw 是否实际上是使用 proxy::dist() 执行的?我想要的输出是一个距离矩阵,显示使用欧几里得距离的 dtw 执行后时间序列之间的距离。

0 投票
0 回答
90 浏览

python - How to sharpen word recognition with DTW + kNN

I have been trying to distinguish between words by extracting MFCCs from audios (with the librosa library), then applying Dynamic Time Warping to classify between the audios using kNN.

For example, I am trying to recognize between the words "cat" and "anything". My problem is that I can't find similarities between two different pronunciations of the word "anything" and the word "cat". All three words seem to be equally distant to each other according to DTW. I tried to reduce or raise the number of coefficients used in the MFCC, to preprocess the MFCCs (normalizing and removing mean) but nothing seems to work.

I'm using the DTW function from the dtw package : dist, cost, acc_cost, path = dtw(mfcc3.T, mfcc2.T, dist=lambda x, y: norm(x - y, ord=1))

My question is : why do you think can't I classify those data ?

— Did I insufficiently preprocessed the data before comparing them with DTW ?

— Need I adjust the DTW more intelligently so the distance that is computed effectively differentiates between different words ?

— Are the kNN or DTW inadequate in my case ? How can I fix this?

Here are the main lines of the code :

0 投票
1 回答
118 浏览

python - fastdtw python包中具有较短参考时间序列信号的长时间序列信号的动态时间扭曲

我有以下两个时间序列信号:

所以xy的形状分别是(1000,)和。(399,)我想用fastdtwpython 包做以下两个动态时间扭曲:

  1. x是参考信号(较长的信号):

我想映射y到更长的信号形状 ( x.shape=(1000,))。它由以下代码完成:

在这种情况下,上面的代码可以正常工作并映射y:(399,)y_warped:(1000,).

  1. y是参考信号(较短的信号):

我想映射x到较短的信号形状 ( y.shape=(399,))。

但在这种情况下,我x_warped的形状与 相同x,但我希望得到x.shape=(399,)。如何将较长的信号变形为较短的信号?提前致谢!

0 投票
0 回答
29 浏览

python - 我可以输出动态时间扭曲的 wav 文件吗?

我发现动态时间扭曲 (dtw) 可用于在 2 个演讲之间找到相似之处,但我发现的所有示例仅输出 2 个演讲之间的矩阵。

我想知道我是否可以输出对齐的语音?
例如,使用 10 秒语音作为基础并与 7 秒语音进行比较,我想让 7 秒语音与 10 秒语音对齐。

0 投票
1 回答
66 浏览

python - 使用 numba 加速 dtaidistance 键功能

DTAIDistance包可用于查找k输入查询的最佳匹配。但不能用于多维输入查询。此外,我想k在一次运行中找到许多输入查询的最佳匹配。

我修改了这个DTAIDistance函数,使它可以用于搜索多维多查询的子序列。我使用njitwith parallel 来加快处理速度,即 p_calc 函数将 numba-parallel 应用于每个输入查询。但我发现与只是简单地逐一循环输入查询(即 calc 函数)相比,并行计算似乎并没有加快计算速度。

如何加速 calc 函数或 p_calc 函数,以便计算多维多查询的动态时间规整路径?

感谢您的回答,然后我修改了代码以进行简化。我删除了 np.sum 部分并使用循环,我可以获得另一个加速。对进一步加速有什么建议吗?

编辑: 我发现以下代码的性能如果使用passbreak. 我不明白为什么?

0 投票
0 回答
179 浏览

python - 如何使用 DTW - 动态时间规整在 python 中对齐多个时间序列(不仅仅是 2 个)?

我发现这两篇文章讨论了使用动态时间扭曲或 DTW 对齐多个“n”个时间序列。

如何在python中3个或更多信号之间应用/实现动态时间规整(DTW)或快速动态时间规整(FastDTW)? 使用 numpy 或 cython 进行高效的成对 DTW 计算

然而,他们未能描述为所有“n”个时间序列找到一条最小距离路径所涉及的所有步骤。

在上述链接的一个答案中,它指出要计算所有成对路径的距离矩阵。但是,没有提到如何处理距离矩阵以创建一个具有“n”个时间序列的图,这些时间序列都是最佳对齐的。

您将如何获取距离矩阵(“n”个时间序列之间的成对距离)并对齐所有“n”个时间序列?

或者,是否有不同的方法来对齐所有“n”个时间序列?

0 投票
2 回答
446 浏览

python - install dtaidistance -> Exception: The compiled dtaidistance C library is not available

I try to run dtaidistance but when running the following code according example :

I get the following error:

I tried different IDEs (Jupyter Notebook, PyCharm, Visual Studio Code), different Laptops, older version of dtaidistance,..

Is it even possible to install the library on windows? -.-

I tried troubleshooting according: https://dtaidistance.readthedocs.io/en/latest/usage/installation.html

I tried everything according:

However, none of it was successful. I am in need of this library..

When running dtw.try_import_c() I get the following output:

Any ideas? Thanks a lot!

0 投票
2 回答
203 浏览

python - How to create a pairwise DTW cost matrix?

I am trying to create a pairwise DTW (Dynamic Time Warping) matrix in python. I have the below code already, but it is incorrect somehow. My current output is a matrix full of infinity, which is incorrect. I cannot figure out what I am doing incorrectly.

Current output is:

0 投票
0 回答
27 浏览

r - 在 ccf(互相关)之后如何使用 DTW?

我使用 ccf 函数来对齐两个向量。然后,我保留了具有最大相关系数的滞后值,然后对对齐的数据执行 dtw。我决定在我的向量 NA 值的开头或结尾添加,以保持相同长度的向量,这要归功于 ccf。

如果我执行最后一行代码,我会收到一条错误消息

这是因为我有 NA 值,而 DTW 不适用于这些值。

你们有谁知道我可以如何执行 DTW,感谢 ccf 的对齐配置文件?我应该用其他东西替换 NA 值吗,DTW 有没有办法与 NA 一起使用?

0 投票
0 回答
24 浏览

r - 有没有办法近似估计 DTW 距离矩阵计算需要多长时间?

我有一个相对较大的时间序列数据,其中包含 10000 个观察值(行)和 200 个变量(列)R dataframe。我想对我的数据运行聚类算法,特别是基于动态时间规整 (DTW) 的层次聚类。

在运行层次聚类之前,我需要计算距离矩阵。我实现它的方式R如下:

但是,我想知道是否有一种方法可以大致估计在运行代码之前该计算需要多长时间。这将帮助我决定是否值得尝试。

PS 我运行了代码,但几分钟后我不得不停止它,因为我不知道它需要多长时间(几分钟、几小时、几天等)