问题标签 [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 投票
2 回答
1981 浏览

python - 不同库的不同结果和性能

我正在比较库dtaidistancefastdtwcdtw以进行 DTW 计算。这是我的代码:

这是我得到的输出:

  • dtw.distance(x,y) 时间:22.16925272245262
  • dtw.distance(x,y) 距离:1888.8583853746156
  • dtw.distance_fast(x,y) 时间:0.3889036471839056
  • dtw.distance_fast(x,y) 距离:1888.8583853746156
  • fastdtw(x,y) 时间:0.23296659641047412
  • fastdtw(x,y) 距离:27238.0
  • pydtw.dtw(x,y) 时间:0.13706478039556558
  • pydtw.dtw(x,y) 距离:17330.0

我的问题是:为什么我会得到不同的表现和不同的距离?非常感谢您的意见。

// 编辑:时间测量的单位是秒。

0 投票
1 回答
912 浏览

python - 不同的距离取决于在 python 中使用 fastdtw 的输入顺序

我想找到时间序列之间的相似之处,并使用 fastdtw (https://github.com/slaypni/fastdtw/tree/master/fastdtw)在 python 中执行动态时间扭曲。计算出的距离有时会根据输入顺序而变化,尤其是对于长时间序列。这是一个例子:

知道为什么吗?

0 投票
0 回答
434 浏览

r - 在 R 编程语言中使用 DTW 作为距离度量来实现 Knn

我正在尝试使用 dtw 作为 R 中的距离度量来实现 Knn。下面是我尝试实现的代码

但是当我使用来自 UCR 的数据集运行它时,我收到以下错误消息;

cpp_cm 中的错误(Q,C,dist_method = dist_method,ws = ws_cpp,nPrevObs = 0):找不到函数“cpp_cm”

0 投票
2 回答
869 浏览

python - 解决 python 列表中的内存错误问题或更聪明的 Numpy 方法

我正在尝试计算一个 DTW 距离矩阵,该矩阵将查看 150,000 个时间序列,每个时间序列具有 13 到 24 个观测值 - 也就是说,生成的距离矩阵将是一个大小约为 (150,000 x 150,000)/2= 11,250,000,000 的列表。

我在一个大小为 200GB 的大数据集群上运行它,但出现内存错误。

我正在使用 dtaidisatance 库并使用了distance_matrix_fast函数,我可以在列表中一次传递整个时间序列,但是我遇到了类似的内存错误,但是从包中出来了。但是,一旦我运行它,错误就会立即被抛出。我还使用了包中的块功能,但似乎无法一次将所有时间序列都带入。

所以我决定通过一个循环计算每两对时间序列之间的距离,然后将其附加到一个列表中。但是,在运行了很长时间后,我确实再次遇到了与以下相同的内存错误:

文件“/root/anaconda2/test/final_clustering_2.py”,第 93 行,在 distance_matrix_scaled.append(dtw.distance_fast(Series_scaled[i], Series_scaled[j])) MemoryError

这是我下面的代码:

你能帮忙回答为什么我会收到这个内存错误吗?是python列表限制还是我的集群大小导致了这个?numpy中是否有一种聪明的方法或格式可以用来解决这个问题?

0 投票
0 回答
331 浏览

svm - 具有动态时间规整内核的 SVM

我需要将支持向量机 (SVM) 分类器与动态时间规整 (DTW) 内核一起用于某些音频处理任务。我知道的所有工具(Weka、LibSVM、SKLearn)都只有带有标准内核(线性、多边形、RBF)的 SVM。在哪里可以找到带有 DTW 内核的 SVM 工具/库?

0 投票
2 回答
121 浏览

r - 矩阵中的最小成本距离

我在下面有这个矩阵

我想循环从 开始k[1,1]和结束k[6,6]。我的循环标准基于,min(k[i,j+1], k[i+1,j], k[i+1, j+1])我希望得到的答案类似于1+1+2+2+3+3+5+9+15 = 41(通过最小路径旅行)

所以几乎它计算最小值从开始k[1,1]然后继续向下直到k[6,6]

当我运行此代码时,它显示以下内容:

不知道为什么会这样……

0 投票
1 回答
530 浏览

r - 如何更改 R 中的 t-sne 距离?

我尝试T-sneR. 我想使用 dtw 而不是欧几里得距离。如何更改规格R

对精选数据执行算法

0 投票
1 回答
1312 浏览

python - 具有多列的 Pandas 滚动时间窗口自定义函数

我在 pandas DataFrame 中有时间序列数据,如下所示:

我正在尝试计算和之间的皮尔逊相关因子,tpdevice_tp使用滚动时间窗口对每个数据应用动态时间规整算法(使用 fastdtw)。对于每个样本,我回顾过去 12 小时并计算相关因子和距离。

我知道 pandas 作为一个滚动函数,但是,它不返回一个数据帧,而是一个系列(或一个数组?)。问题是相关因子和fastdtw都需要两个参数才能工作:df.tpdf.device_tp

我找到了另一种方法,使用循环来达到我想要的:

但是当然这真的不是时间效率!另外我想知道有什么更好的方法来做到这一点?我读了一些关于重新定义滚动函数而不是使用 pandas 内置函数的东西,但真的不知道该怎么做。

感谢您的帮助!

0 投票
1 回答
246 浏览

r - 如何使用 dtw 距离函数自定义 proxy::dist 返回的内容

我有一个时间序列列表:

我想计算列表中每对之间的 dtw 距离。由于读取dtw包注册dtw距离作为距离数据库中的距离函数proxypr_DB我可以使用它proxy::dist来快速计算所有距离。问题是它proxy::dist似乎返回了原始距离,而由于我的时间序列长度不同,我需要它来返回归一化距离。dtw::dtw函数返回一个包含normalizedDistance一个元素的列表。那么我怎样才能改变什么是 return byproxy::dist并让它 returnnormalizedDistance呢?或者也许有另一种方法来计算每对归一化距离?(当然,由于我的数据集很大,我需要避免遍历所有对)。

这是一个简短的代码,可帮助您查看问题:

0 投票
1 回答
403 浏览

r - 将图例和标签放入 dtwclust 图

我使用R中的dtwclust包来获取图中的簇。

集群

我想更改标签 x,其中数字显示为真实日期,并添加图例以了解哪个时间序列对应于什么。你知道怎么做吗?