lcss_distance#
- lcss_distance(x: ndarray, y: ndarray, window: float | None = None, itakura_max_slope: float | None = None, bounding_matrix: ndarray | None = None, epsilon: float = 1.0, **kwargs: Any) float [源代码][源代码]#
计算两个时间序列之间的最长公共子序列(LCSS)得分。
LCSS 试图找到两个时间序列之间的最长公共序列,并返回该最长公共序列所占的百分比值。最初出现在 [1] 中,LCSS 通过匹配相似度达到定义阈值(epsilon)的索引来计算。
返回的值将在 0.0 和 1.0 之间,其中 0.0 表示两个时间序列完全相同,1.0 表示它们完全相反。
- 参数:
- x: np.ndarray (1d 或 2d 数组)
第一个时间序列。
- y: np.ndarray (1d 或 2d 数组)
第二个时间序列。
- window: float, defaults = None
这是Sakoe-Chiba下界窗口的半径(如果使用Sakoe-Chiba下界)。值必须在0.和1.之间。
- itakura_max_slope: float, 默认值 = None
Itakura 平行四边形的斜率梯度(如果使用 Itakura 平行四边形下界)。值必须在 0. 和 1. 之间。
- bounding_matrix: np.ndarray (2d 大小为 mxn,其中 m 是 len(x),n 是 len(y)),
defaults = None
自定义使用的边界矩阵。如果定义了,则忽略其他 lower_bounding 参数。矩阵应构造为,被认为在边界内的索引值应为 0,边界矩阵外的索引值应为无穷大。
- epsilon浮动,默认值 = 1.
匹配阈值,用于确定两个子序列是否足够接近,以至于被认为是’常见的’。
- **kwargs: 任意
额外的关键字参数。
- 返回:
- 浮动
x 和 y 之间的 Lcss 距离。返回的值将在 0.0 和 1.0 之间,其中 0.0 表示两个时间序列完全相同,1.0 表示它们完全相反。
- 引发:
- ValueError
如果 sakoe_chiba_window_radius 不是浮点数。如果 itakura_max_slope 不是浮点数。如果提供的 x 或 y 的值不是 numpy 数组。如果 x 或 y 的值有超过 2 个维度。如果提供了度量字符串,但不是定义的有效字符串。如果提供了度量对象(类的实例)并且不继承自 NumbaDistance。如果无法确定度量类型。如果同时设置了 window 和 itakura_max_slope。
参考文献
[1]M. Vlachos, D. Gunopoulos, and G. Kollios. 2002. “Discovering Similar Multidimensional Trajectories”, In Proceedings of the 18th International Conference on Data Engineering (ICDE ‘02). IEEE Computer Society, USA, 673.