mvmStepPattern¶
- dtw.mvmStepPattern(elasticity=20)¶
Minimum Variance Matching algorithm
Step patterns to compute the Minimum Variance Matching (MVM) correspondence between time series
Details
The Minimum Variance Matching algorithm (1) finds the non-contiguous parts of reference which best match the query, allowing for arbitrarily long “stretches” of reference to be excluded from the match. All elements of the query have to be matched. First and last elements of the query are anchored at the boundaries of the reference.
The
mvmStepPattern
function creates astepPattern
object which implements this behavior, to be used with the usual [dtw()] call (see example). MVM is computed as a special case of DTW, with a very large, asymmetric-like step pattern.The
elasticity
argument limits the maximum run length of reference which can be skipped at once. If no limit is desired, setelasticity
to an integer at least as large as the reference (computation time grows linearly).- Parameters:
elasticity – integer: maximum consecutive reference elements skippable
- Return type:
A step pattern object.
References
Latecki, L. J.; Megalooikonomou, V.; Wang, Q. & Yu, D. An elastic partial shape matching technique Pattern Recognition, 2007, 40, 3069-3080. doi:10.1016/j_patcog.2007.03.004
Examples
>>> import numpy as np >>> from dtw import *
The hand-checkable example given in Fig. 5, ref. [1] above
>>> diffmx = np.array( ... [[ 0, 1, 8, 2, 2, 4, 8 ], ... [ 1, 0, 7, 1, 1, 3, 7 ], ... [ -7, -6, 1, -5, -5, -3, 1 ], ... [ -5, -4, 3, -3, -3, -1, 3 ], ... [ -7, -6, 1, -5, -5, -3, 1 ]], dtype=np.double )
Cost matrix
>>> costmx = diffmx**2;
Compute the alignment
>>> al = dtw(costmx,step_pattern=mvmStepPattern(10))
Elements 4,5 are skipped
>>> al.index2+1 array([1, 2, 3, 6, 7])
>>> al.plot()