动态时间规整 (DTW)¶
- class darts.dataprocessing.dtw.dtw.DTWAlignment(series1, series2, cost)[source]¶
- 基类: - object- 动态时间规整 (DTW) 对齐。 - n¶
- series1 的长度 - 类型
- int 
 
 - m¶
- series2 的长度 - 类型
- int 
 
 - series1¶
- 要与 series2 对齐的 TimeSeries。 
 - series2¶
- 要与 series1 对齐的 TimeSeries。 
 - cost¶
- DTW 的 CostMatrix。 
 - 方法 - distance()- 返回规整后两个序列中成对元素的总距离。 - 返回规整后两个序列中成对元素的平均距离。 - path()- 返回从 series1 到 series2 的索引路径。 - plot([new_plot, show_series, show_cost, ...])- 绘制规整路径。 - plot_alignment([new_plot, series1_y_offset, ...])- 绘制每个序列的单变量分量,其间的连线表示 DTW 算法选择的对齐方式。 - warped()- 根据 DTWAlignment.path() 返回的规整路径对两个时序进行规整,该路径最小化了成对距离。 - cost: CostMatrix¶
 - m: int¶
 - n: int¶
 - path()[source]¶
- 返回从 series1 到 series2 的索引路径。 - 返回值
- 索引数组 [[i0,j0], [i1,j1], [i2,j2], …],其中 i 是 series1 的索引,j 是 series2 的索引。索引按单调递增顺序排列,path[n] >= path[n-1]。 
- 返回类型
- 形状为 (len(path), 2) 的 np.ndarray 
 
 - plot(new_plot=False, show_series=False, show_cost=True, cost_cmap='summer', args_path={}, args_cost={}, args_series1={}, args_series2={})¶
- 绘制规整路径。 - 参数
- new_plot ( - bool) – 布尔值,指示是否生成新的图。
- show_series ( - bool) – 布尔值,指示是否额外绘制两个时序。series1 将绘制在成本矩阵下方,series2 将绘制在成本矩阵左侧。
- show_cost ( - bool) – 布尔值,指示是否额外绘制成本矩阵。成本矩阵将以热力图形式显示。对于可视化窗口函数的效果很有用。
- cost_cmap ( - str) – 成本矩阵图的颜色映射样式
- args_path ( - dict) – 传递给规整路径 plot() 函数的一些关键字参数
- args_cost ( - dict) – 传递给成本矩阵 imshow 函数的一些关键字参数
- args_series1 ( - dict) – 传递给 series1 的 plot() 方法的一些关键字参数
- args_series2 ( - dict) – 传递给 series2 的 plot() 方法的一些关键字参数
 
 
 - plot_alignment(new_plot=False, series1_y_offset=0, series2_y_offset=0, components=(0, 0), args_line={}, args_series1={}, args_series2={})¶
- 绘制每个序列的单变量分量,其间的连线表示 DTW 算法选择的对齐方式。 - 参数
- new_plot ( - bool) – 是否生成新的 Figure
- series2_y_offset ( - float) – 垂直偏移 series1 以方便查看。
- series1_y_offset ( - float) – 垂直偏移 series2 以方便查看。
- components ( - tuple[- Union[- str,- int],- Union[- str,- int]]) – series1 的分量索引和 series2 的分量索引组成的元组。
- args_line ( - dict) – 传递给线的 plot() 方法的一些关键字参数
- args_series1 ( - dict) – 传递给 series1 的 plot() 方法的一些关键字参数
- args_series2 ( - dict) – 传递给 series2 的 plot() 方法的一些关键字参数
 
 
 - series1: TimeSeries¶
 - series2: TimeSeries¶
 
- darts.dataprocessing.dtw.dtw.dtw(series1, series2, window=None, distance=None, multi_grid_radius=- 1)[source]¶
- 根据动态时间规整算法,确定两个时序 series1 和 series2 之间的最优对齐方式。该对齐方式使规整后成对元素之间的距离最小化。两个序列中的所有元素都进行匹配,并且顺序严格单调递增。只考虑序列中的值,忽略时间轴。 - 动态时间规整可用于确定两个时序的对应紧密程度,而无需考虑相位、长度或速度差异。 - 参数
- series1 ( - TimeSeries) – 要与 series2 对齐的 TimeSeries。
- series2 ( - TimeSeries) – 要与 series1 对齐的 TimeSeries。
- window ( - Optional[- Window,- None]) – 可选参数,用于约束最优对齐搜索的 Window:参见 SakoeChiba 和 Itakura。默认为考虑所有可能的对齐 (NoWindow)。
- distance ( - Optional[- Callable[[- Union[- ndarray,- floating],- Union[- ndarray,- floating]],- float],- None]) –- 输入为单变量序列的两个 float 或两个 np.ndarray,并返回它们之间距离的函数。 - 单变量数据默认为绝对差,多变量序列默认为绝对差之和。 
- multi_grid_radius ( - int) –- 默认半径 -1 会对动态时间规整算法进行精确评估。在没有约束的情况下,DTW 的运行时间为 O(nxm),其中 n,m 是序列的大小。在大型数据集上进行无约束的精确评估将导致性能警告。 - 将 multi_grid_radius 设置为除 -1 之外的值将启用近似多网格求解器,其执行时间为线性时间,而精确评估为二次时间。增加半径会以解决方案精度换取性能。 
 
- 返回值
- 用于获取规整路径、平均距离、距离和规整后时序的辅助对象 
- 返回类型