1

这是我的三个时间序列:

t1  t2  t3
3   8   17
1   8   18
0   8   17
0   8   18
2   8   17
3   8   17
0   8   18
0   8   17
2   8   17
3   8   18
1   8   17
0   8   17
0   8   17
1   8   17
2   8   16
2   8   16
3   8   16
0   8   16
2   8   16
2   8   16
3   8   16
1   8   17
1   8   16
2   8   16
3   8   16
1   8   17
2   8   16
4   8   17
0   8   16
1   8   17
3   8   16
0   8   16
3   8   16
2   8   16
2   8   17
0   8   16
2   8   16
2   8   17
3   8   16
3   8   16
3   8   16
2   8   16
4   8   16
1   8   16
0   8   17
0   8   17
2   8   17
1   8   17
2   8   17
2   8   18
0   8   18
1   8   18
0   8   17
0   8   17
2   8   17
1   8   17
2   8   17
0   8   17
0   8   17
0   8   17

正如我所见,DTW 可以给我们输出,它可以告诉我们时间序列之间的相似性

但我不知道我们该怎么做?

我们怎么能用 DTW 的输出这么说呢?

哪个距离好??高还是低?

帮我解决这个问题

谢谢

4

1 回答 1

1

使用DTW

import pandas as pd
from io import StringIO
from dtaidistance import dtw

data = StringIO("""
t1   t2   t3
3   8   17
1   8   18
.   .   .
.   .   .
0   8   17
0   8   17
""")

# load data into data frame
df = pd.read_csv(data, sep='   ', engine='python', dtype=float)
# transpose data
transposed_matrix = df.values.transpose()
# calculate series cost
results = dtw.distance_matrix_fast(transposed_matrix, compact=True)

输出:

比较 3 个时间序列的成本结果。成本越低越好。

[ 51.4392846  118.73078792  67.71262807]
于 2020-02-03T14:49:33.753 回答