Learn R Programming

tsmp (version 0.4.15)

stomp_par: Univariate STOMP algorithm

Description

Computes the Matrix Profile and Profile Index for Univariate Time Series.

Usage

stomp_par(
  ...,
  window_size,
  exclusion_zone = getOption("tsmp.exclusion_zone", 1/2),
  verbose = getOption("tsmp.verbose", 2),
  n_workers = 2
)

stomp( ..., window_size, exclusion_zone = getOption("tsmp.exclusion_zone", 1/2), verbose = getOption("tsmp.verbose", 2) )

Value

Returns a MatrixProfile object, a list with the matrix profile mp, profile index pi

left and right matrix profile lmp, rmp and profile index lpi, rpi, window size w and exclusion zone ez.

Arguments

...

a matrix or a vector. If a second time series is supplied it will be a join matrix profile.

window_size

an int. Size of the sliding window.

exclusion_zone

a numeric. Size of the exclusion zone, based on window size (default is 1/2). See details.

verbose

an int. See details. (Default is 2).

n_workers

an int. Number of workers for parallel. (Default is 2).

Functions

  • stomp_par(): Parallel version.

  • stomp(): Single thread version.

Details

The Matrix Profile, has the potential to revolutionize time series data mining because of its generality, versatility, simplicity and scalability. In particular it has implications for time series motif discovery, time series joins, shapelet discovery (classification), density estimation, semantic segmentation, visualization, rule discovery, clustering etc. verbose changes how much information is printed by this function; 0 means nothing, 1 means text, 2 adds the progress bar, 3 adds the finish sound. exclusion_zone is used to avoid trivial matches; if a query data is provided (join similarity), this parameter is ignored.

References

  • Zhu Y, Zimmerman Z, Senobari NS, Yeh CM, Funning G. Matrix Profile II : Exploiting a Novel Algorithm and GPUs to Break the One Hundred Million Barrier for Time Series Motifs and Joins. Icdm. 2016 Jan 22;54(1):739-48.

Website: http://www.cs.ucr.edu/~eamonn/MatrixProfile.html

See Also

Other matrix profile computations: mstomp_par(), scrimp(), stamp_par(), tsmp(), valmod()

Examples

Run this code
mp <- stomp(mp_toy_data$data[1:200, 1], window_size = 30, verbose = 0)
# \donttest{
#' # using threads
mp <- stomp_par(mp_toy_data$data[1:400, 1], window_size = 30, verbose = 0)

ref_data <- mp_toy_data$data[, 1]
query_data <- mp_toy_data$data[, 2]
# self similarity
mp <- stomp(ref_data, window_size = 30)
# join similarity
mp2 <- stomp(ref_data, query_data, window_size = 30)
# }

Run the code above in your browser using DataLab