问题标签 [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 回答
824 浏览

python - 具有多个特征的大型数据集的动态时间规整 (DTW)

我是 DTW 的新手,并试图将其应用于具有约 700,000 行和 9 个特征的数据集。我有两个数组(矩阵)的形式,

我已经探索了fastdtwdtaidistance包。'fastdtw' 能够在大约 5 分钟内给出上述矩阵的输出距离。此外,我还希望将结果可视化,并应用层次聚类。我没有在 fastdtw 中找到任何函数来可视化路径/结果和聚类。

dtaidistance确实提供了这些功能,但运行时间太长(我为上面相同的两个系列运行它,15-20分钟后它仍在运行)。有没有办法处理这个?或者我可以用fastdtw的结果进行聚类和可视化吗?

我真的很感激对此的一些帮助。

0 投票
0 回答
422 浏览

python - 计算不等长序列的距离矩阵

我有一个形式的多个序列(长度不等):

序列的长度约为 1000-2000。共有38个序列。我需要对这些执行层次聚类,为此我定义了一个基于加权 DTW(动态时间规整)的自定义距离度量:

有没有办法使用myMetric作为距离度量来有效地计算上述系列的距离矩阵?遍历整个系列将是O(n^2)并且对于我的系统上的 38 个序列花费的时间太长。此外,我尝试使用sklearn.metrics.pairwise_distances

dist = pairwise_distances(series, metric=myMetric)

但这要求系列长度相等,并引发以下错误:

0 投票
0 回答
1505 浏览

python - 使用 scipy 和 DTW 对不同长度时间序列数据进行分层聚类

我有一组具有不同长度的时间序列数据,我正在尝试使用动态时间规整 (DTW) 对它们进行聚类。

为了问题的完整性,我正在使用这个简单的 DTW 实现

我有表格的时间序列数据

当我尝试

我明白ValueError: setting an array element with a sequence.了,这是可以理解的,因为scipy.cluster.hierarchy.linkage文档说

...在n维中的m个观察向量的集合可以作为m × n数组传递。压缩距离矩阵的所有元素都必须是有限的,即没有 NaN 或 inf。

显然我的输入不符合这个规范。对不同长度的时间序列数据进行分类的正确方法是什么?

编辑 1

一个简单的解决方法是用 0 填充较短时间序列的缺失条目,以便我们可以根据需要获得一个m x n矩阵。我不确定这是否会改变时间序列的语义。

0 投票
2 回答
713 浏览

r - 使用 R 的多元动态时间规整 (DTW)

我目前正在处理 R 中的多元动态时间规整 (DTW)。到目前为止,我发现的最好的库是 dtw 包,如下所述:http: //dtw.r-forge.r-project.org/

但我不知道多变量 dtw 是如何实际实现的,并且在包的描述中也没有描述。总而言之,我想知道它是实现DTWD(Dependent DTW)还是DTWI(Independent DTW)。

有没有人有想法或建议如何找出包使用这两种方法中的哪一种?或者是否有允许我选择变体的库?

0 投票
0 回答
60 浏览

algorithm - DTW算法:简单实现——验证

我试图在 C 中简单地实现 DTW 算法,而不使用任何实质性的优化技术。我正在尝试将此实现用于一些简单的草图识别,也就是说,从一组中找到给定草图的 k 个最近邻居。我得到了一些对我来说似乎很奇怪的结果,我想知道这是因为我的 dtw 实现。我需要有人来验证我的算法。

正如我所说,我试图找到 k 个最近的邻居,所以我为加快计算速度而实施的唯一“优化”是,如果计算的给定线的最小成本在任何点大于 k 之间的最大距离当前被认为是最近邻居的草图,我停止计算并返回 +inf。

下面是对应的算法:

我确信就语法、C 语言等而言,实现没有任何问题,因为我已经检查过了,而且我总是得到预期的结果。如果算法背后的推理有问题,我只是在徘徊。我问是因为它是一个非常知名的算法和一个非常简单的实现,所以也许有人很容易在那里发现错误。

0 投票
0 回答
426 浏览

python - 音频识别:将音频示例的大小调整为相同的长度

我有一个带有 MFCC 的音频数据集,它是一个一维数组 numpy 文件。总共有 45K 的示例,所以它是一个 1 列和 45K 行的 numpy 文件。在每一行中,有一个 N 行 13 列的嵌套对象。由于每个示例的长度不同,我试图将它们调整为相同的长度,以便它们都具有相同的列数和行数,以进行进一步的 ML 训练。以下是数据如何显示的示例:

数据集中的第一个示例,有 13 列和 43 行 数据集中的第一个示例,有 13 列和 43 行

数据集中的第二个示例,有 13 列和 33 行 数据集中的第二个示例,有 13 列和 33 行

我尝试使用动态时间扭曲,但看起来在线提供的所有代码只向我展示了如何计算两个音频示例之间的最短距离:

但是我真的不需要知道两个示例之间的距离,相反,我需要知道如何实际调整它们的大小,以便可以将其放入对称矩阵中,所以我什至不知道我的方向看着就对了。我也尝试查看 python tslearn 库,但没有找到任何有用的东西。谢谢你!

0 投票
1 回答
466 浏览

java - 使用 TARSOS DSP 从 WavFiles JAVA 中提取 MFCC 的困难

在使用 DTW 计算它们之间的距离之前,我正在尝试使用 TARSOS DSP 库从 wav 文件中提取 MFCC 值。

不幸的是,我无法理解 MFCC 类中的代码如何用于 wav 文件。

我不确定是否需要先将 wav 文件转换为某种数组缓冲区。

请在此链接中查看 MFCC 类的库中的代码。

https://github.com/JorenSix/TarsosDSP/blob/master/src/core/be/tarsos/dsp/mfcc/MFCC.java

如果我能获得有关如何正确使用此代码从 wav 文件中获取 MFCC 值的建议,或者获得有关另一种方法的建议,我将不胜感激。

0 投票
0 回答
66 浏览

java - 将 MFCC 值(梅尔频率倒谱系数)转换为 ascii 文件

我有从 wav 文件中提取 MFCC 值的代码:

现在我需要对 MFCC 值执行动态时间规整以比较 wav 文件。

但是,此代码要求我比较两个 ascii 格式的文件:

我无法弄清楚如何转换浮点值数组的 MFCList:

转换成 ascii 文件格式。

任何有关如何执行此操作的建议或建议将不胜感激。

0 投票
1 回答
93 浏览

kinect - 哪一个?DTWi 还是 DTWd?

我的教育项目是关于“使用 kinect 相机进行手语识别”。

我想比较使用DTW作为距离度量的手部运动轨迹,然后做一个NN-DTW分类。

手部轨迹是根据 3D 坐标系中连续帧中的手部关节位置构建的。每一帧中手关节的 x,y,z 坐标是通过使用 kinect 相机获得的。

哪个选项更适合测量这些轨迹的距离?DTWi 还是 DTWd ?

0 投票
0 回答
462 浏览

r - Error with Multi-variate Time Series clustering using dtwclust - There are missing values in the series

I am working on a time series clustering using dtwclust package in R. I am using the fundamental dataset from S&P500 stocks. The Head of the data frame is as follows :

Thus I have the quarterly filling data sets for few stocks ordered by ticker and dates. After that I perform normalize function and try to derive the cluster from the aforementioned data frame.

missmap(DFCleanPF.norm) returns a DF with zero missing value.

However I encounter an error while there is no missing value in the data set. The error is as follows :

I am new in time series clustering. My goad is to find an ideal method to cluster the stocks to determine the risk and return based on the key parameters captured over time( for multiple records. Therefore I appreciate helps in: 1. Create an ideal data frame from the source dataset mentioned above and get rid of the errors. 2. The ideal dtwclust function with an optimum K value to get the best combination of cluster.

Please find the sample data sets. We can consider other clustering models which could help us achieving the goals. Not sure if the current data frame be treated as an input or we need to treat the symbols as numeric variables and create few matrices against each symbol.

Here is the sample data set :

enter image description here