sciquence.similarities.dtw

sciquence.similarities.dtw(A, B, metric)

Measure similarities between two sequences.

When computing Dynamic Time Warping path, we are looking for the lowest cost path from (0, 0) to (len(A), len(B) point).

Parameters:
  • A (np.ndarray (a_rows, n_columns)) – A sequence
  • B (np.ndarray (b_rows, n_columns)) – A sequence
  • metric (function(np.ndarray, np.ndarray)) – A distance function with two parameters, which returns double
Returns:

  • warping_path (list of tuple) – Points of warping path
  • distance (double) – A distance between two sequences

Examples

>>> from sciquence.dtw import dtw
>>> import numpy as np
>>> from scipy.spatial.distance import cosine
>>> A = np.random.rand(5, 3)
>>> B = np.random.rand(8, 3)
>>> warp_path, distance = dtw(A, B, cosine)

References

[1]https://en.wikipedia.org/wiki/Dynamic_time_warping
[2]Ratanamahatana Ch. A., Keogh E. (2004). ` Everything you know about Dynamic Time Warping is Wrong <http://wearables.cc.gatech.edu/paper_of_week/DTW_myths.pdf>_`