msm_distance#
- msm_distance(x: ndarray, y: ndarray, c: float = 1.0, window: float = None, itakura_max_slope: float = None, bounding_matrix: ndarray = None, **kwargs: dict) float [源代码]#
计算移动-分割-合并距离。
此指标使用三个基本操作作为构建块:移动(Move)、分割(Split)和合并(Merge)。移动操作改变单个元素的值,分割操作将单个元素转换为两个连续元素,合并操作将两个连续元素合并为一个。每个操作都有相关的成本,两条时间序列之间的MSM距离定义为将第一条时间序列转换为第二条时间序列的最廉价操作序列的成本。
- 参数:
- x: np.ndarray (1维或2维数组)
第一条时间序列。
- y: np.ndarray (1维或2维数组)
第二条时间序列。
- c: float, 默认值 = 1.0
分割或合并操作的成本。
- window: Float, 默认值 = None
Sakoe-Chiba窗口的半径(如果使用Sakoe-Chiba下界)。必须在0到1之间。
- itakura_max_slope: float, 默认值 = None
Itakura平行四边形的斜率梯度(如果使用Itakura平行四边形下界)。必须在0到1之间。
- bounding_matrix: np.ndarray (形状为 (m1,m2) 的2维数组), 默认值 = None
要使用的自定义边界矩阵。如果已定义,则忽略其他 lower_bounding 参数。矩阵的结构应使得边界内的索引值为 0,边界外的索引值为无穷大。
- kwargs: any
额外关键字参数。
- 返回:
- 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.