tslearn.metrics.ctw_path

tslearn.metrics.ctw_path(s1, s2, max_iter=100, n_components=None, global_constraint=None, sakoe_chiba_radius=None, itakura_max_slope=None, verbose=False, be=None)[source]

计算(可能是多维的)时间序列之间的规范时间扭曲(CTW)相似性度量,并返回对齐路径、规范相关分析(sklearn)对象和相似性。

规范时间扭曲是一种在特征空间的刚性配准下对齐时间序列的方法。 它不应与动态时间扭曲(DTW)混淆,尽管CTW使用了DTW。

不要求两个时间序列具有相同的大小,也不要求具有相同的维度(CTW将找到一个最能对齐特征空间的子空间)。CTW最初在[1]中提出。

Parameters:
s1array-like, shape=(sz1, d) or (sz1,)

一个时间序列。如果形状是 (sz1,),则假定时间序列是单变量的。

s2array-like, shape=(sz2, d) or (sz2,)

另一个时间序列。如果形状是 (sz2,),则假定时间序列是单变量的。

max_iterint (default: 100)

CTW算法的迭代次数。每次迭代

n_componentsint (default: None)

用于典型相关分析的组件数量。 如果为None,则使用s1和s2之间特征数量的较小值。

global_constraint{“itakura”, “sakoe_chiba”} or None (default: None)

全局约束以限制DTW调用的可接受路径。

sakoe_chiba_radiusint or None (default: None)

用于Sakoe-Chiba带全局约束的半径。 如果为None且global_constraint设置为“sakoe_chiba”,则使用半径为1。 如果同时设置了sakoe_chiba_radiusitakura_max_slope, 则使用global_constraint来推断在这两者中使用哪个约束。 在这种情况下,如果global_constraint不对应任何全局约束, 则会引发RuntimeWarning并且不使用任何全局约束。

itakura_max_slopefloat or None (default: None)

Itakura平行四边形约束的最大斜率。 如果为None且global_constraint设置为“itakura”,则使用最大斜率为2。 如果同时设置了sakoe_chiba_radiusitakura_max_slope, 则使用global_constraint来推断使用哪种约束。在这种情况下,如果global_constraint不对应任何全局约束,则会引发RuntimeWarning并且不使用任何全局约束。

verbosebool (default: True)

如果为True,则在算法的每次迭代中打印分数。

beBackend object or string or None

后端。如果 be 是类 NumPyBackend 的实例或字符串 “numpy”,则使用 NumPy 后端。 如果 be 是类 PyTorchBackend 的实例或字符串 “pytorch”,则使用 PyTorch 后端。 如果 beNone,则后端由输入数组决定。 有关更多信息,请参阅我们的 专用用户指南页面

Returns:
list of integer pairs

匹配路径表示为索引对的列表。在每一对中,第一个索引对应于s1,第二个索引对应于s2。

sklearn.decomposition.CCA

用于在收敛时对齐时间序列的典型相关分析对象。

float

相似度分数

另请参阅

ctw

仅获取CTW的相似度分数

参考文献

[1]

F. Zhou 和 F. Torre, “用于人类行为对齐的规范时间扭曲”. NIPS 2009.

示例

>>> path, cca, dist = ctw_path([1, 2, 3], [1., 2., 2., 3.])
>>> path
[(0, 0), (1, 1), (1, 2), (2, 3)]
>>> type(cca)  
<class 'sklearn.cross_decomposition...CCA'>
>>> dist
0.0
>>> path, cca, dist = ctw_path([1, 2, 3],
...                            [[1., 1.], [2., 2.], [2., 2.], [3., 3.]])
>>> dist
0.0

使用tslearn.metrics.ctw_path的示例

规范时间扭曲

Canonical Time Warping