tslearn.metrics.gak

tslearn.metrics.gak(s1, s2, sigma=1.0, be=None)[source]

计算(可能是多维的)时间序列之间的全局对齐核(GAK)并返回它。

不要求两个时间序列的大小相同,但它们必须具有相同的维度。GAK最初在[1]中提出。这是一个标准化版本,确保对于所有的\(x\)\(k(x,x)=1\),并且对于所有的\(x, y\)\(k(x,y) \in [0, 1]\)

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

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

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

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

sigmafloat (default 1.)

用于GAK的内部高斯核的带宽。

beBackend object or string or None

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

Returns:
float

内核值

另请参阅

cdist_gak

使用全局对齐核计算交叉相似性矩阵

参考文献

[1]
  1. Cuturi, “快速全局对齐核,” ICML 2011.

示例

>>> gak([1, 2, 3], [1., 2., 2., 3.], sigma=2.)  
0.839...
>>> gak([1, 2, 3], [1., 2., 2., 3., 4.])  
0.273...