tslearn.metrics.dtw_subsequence_path¶
- tslearn.metrics.dtw_subsequence_path(subseq, longseq, be=None)[source]¶
计算(可能是多维的)查询与长时间序列之间的子序列动态时间规整(DTW)相似度度量,并返回路径和相似度。
DTW 计算为对齐时间序列之间的欧几里得距离, 即,如果 \(\pi\) 是对齐路径:
\[DTW(X, Y) = \sqrt{\sum_{(i, j) \in \pi} \|X_{i} - Y_{j}\|^2}\]与传统DTW相比,这里放宽了对可接受路径\(\pi\)的边界约束,使得\(\pi_0 = (0, ?)\)和\(\pi_L = (N-1, ?)\),其中\(L\)是所考虑路径的长度,\(N\)是子序列时间序列的长度。
不要求两个时间序列的大小相同,但它们必须具有相同的维度。此实现找到subseq在longseq内部最佳匹配的起始和结束位置。
- Parameters:
- subseqarray-like, shape=(sz1, d) or (sz1,)
查询时间序列。 如果形状是 (sz1,),则假定时间序列是单变量的。
- longseqarray-like, shape=(sz2, d) or (sz2,)
一个参考(假设比subseq更长)时间序列。 如果形状是(sz2,),则假设时间序列是单变量的。
- beBackend object or string or None
后端。如果 be 是类 NumPyBackend 的实例或字符串 “numpy”,则使用 NumPy 后端。 如果 be 是类 PyTorchBackend 的实例或字符串 “pytorch”,则使用 PyTorch 后端。 如果 be 是 None,则后端由输入数组决定。 更多信息请参阅我们的 专用用户指南页面。
- Returns:
- list of integer pairs
匹配路径表示为索引对的列表。在每一对中,第一个索引对应于subseq,第二个索引对应于longseq。
- float
相似度分数
另请参阅
dtw获取DTW的相似度分数
subsequence_cost_matrix计算所需的成本矩阵
subsequence_path手动计算匹配路径
示例
>>> path, dist = dtw_subsequence_path([2., 3.], [1., 2., 2., 3., 4.]) >>> path [(0, 2), (1, 3)] >>> dist 0.0