我有两个2-D阵列:
a: [(1,2), (1,3) (2,3), (4,5), ...... (100,101), (101,102)]
b: [(2,2), (2,1) (3,2), (4,3), ...... (100,99), (101,101)]
假设a: 101 的长度 假设b的长度: 101
和一个数组:
c: [(4,4), (4,5), (7,7) ... (22,24)]
假设c的长度: 21
我想找到一种方法来了解数组c是否更多类似于a或b。
===========
到目前为止我所尝试的很简单,但结果并不完美:
步骤1:计算c和a的DTW distance,使用数组c长度的窗口大小(因为数组c较小),你将获得一个DTW距离数组,得到平均值它的价值。即0.212
第2步:在c和b上做同样的事情,得到平均值。即0.32
步骤3:由于上面的计算要知道,c更类似于a,因为平均dtw距离较小。
但是(总有一个但是:|),结果并不完美,错误发生了。
===========
附加到我原来的问题:
更好的方法吗?小心c的数组不固定。
非常感谢你们。
答案 0 :(得分:0)
DTW是距离的一个很好的测量方法,但在拍摄之后,你只是做了一个平均值,这显然不是一个很好的距离测量,因为它没有考虑到偏差,例如。目前尚不清楚如何在获取距离后以阵列结束。你的数组似乎是由向量组成的,所以它只是一个常见的数组,但是不要将A和B作为| A - B |中的标量,而应该将它们作为向量。
另外你说数组a小于c,但在例子中,数组a的长度为101,而数组c的数组长度为21。
我还建议您进一步研究,看看FastDTW,它是DTW的时间和空间分摊线性算法: https://code.google.com/p/fastdtw/