Understanding the implementation of mStump #516
-
Hey! I have got another question related to the mStump algorithm.
Since Stomp needs in-order evaluation, is there a reason why MASS is used for the multidimensional version of Stomp? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
So, believe it or not, you've actually answered your own question. Indeed, Specifically, in Lines 1000 to 1002 in 5f192a0 which computes the first mstump profile (i.e., only for the first window for all subsequences) and then this function calls Lines 558 to 560 in 5f192a0 which in turn calls Lines 398 to 406 in 5f192a0 After the first multi-dimensional matrix profile (for the first window) is computed, then the rest follows a STOMP-like approach to compute the rest of the windows. Notice that
Consistent with 1-dimensional STAMP/STOMP, MASS is the fastest known approach for computing the matrix profile for a single subsequence window (or the first window). Thus, we've chosen to use the same approach for multi-dimensional matrix profile calculations as well. Unfortunately, the algorithm for mSTOMP is poorly documented and we've gone through a painstaking amount of effort to ensure its validity/accuracy. In my humble opinion, mSTOMP is very easy to get wrong and very hard to get right and STUMPY's goal is to do all of the hard work so that you don't have to. |
Beta Was this translation helpful? Give feedback.
So, believe it or not, you've actually answered your own question. Indeed,
mstump
utilizes a STOMP-like algorithm. Inmstump.py
, you seedef _multi_mass(Q, T, m, M_T, Σ_T, μ_Q, σ_Q)
because it is actually only used to compute the multi-dimensional matrix p…