msm_distance#

msm_distance(x: ndarray, y: ndarray, c: float = 1.0, window: float | None = None, itakura_max_slope: float | None = None, bounding_matrix: ndarray | None = None, **kwargs: dict) float[源代码][源代码]#

计算移动-分割-合并距离。

此度量标准使用三种基本操作作为构建块:移动、分割和合并。移动操作改变单个元素的值,分割操作将单个元素转换为两个连续元素,合并操作将两个连续元素合并为一个。每个操作都有一个相关的成本,两个时间序列之间的MSM距离定义为将第一个时间序列转换为第二个时间序列的最便宜操作序列的成本。

参数:
x: np.ndarray (1d 或 2d 数组)

第一个时间序列。

y: np.ndarray (1d 或 2d 数组)

第二个时间序列。

c: float, 默认值 = 1.0

分割或合并操作的成本。

window: Float, defaults = None

这是Sakoe-Chiba下界窗口的半径(如果使用Sakoe-Chiba下界)。必须在0和1之间。

itakura_max_slope: float, 默认值 = None

Itakura 平行四边形的斜率梯度(如果使用 Itakura 平行四边形下界)。必须在 0 和 1 之间。

bounding_matrix: np.ndarray (形状为 (m1,m2) 的二维数组), 默认 = None

自定义使用的边界矩阵。如果定义了,则忽略其他 lower_bounding 参数。矩阵应构造为,被视为在边界内的索引值应为 0,而边界矩阵外的索引值应为无穷大。

**kwargs: 任何

额外关键字参数。

返回:
float

x 和 y 之间的 Msm 距离。

引发:
ValueError

如果提供的 x 或 y 的值不是 numpy 数组。如果 x 或 y 的值有超过 2 个维度。如果提供了度量字符串,并且不是定义的有效字符串。如果提供了度量对象(类的实例)并且不继承自 NumbaDistance。如果解析的度量不是 no_python 编译的。如果无法确定度量类型。

参考文献

for time series. IEEE Transactions on Knowledge and Data Engineering, 25(6):1425-1438, 2013.