README
Francisco Bischoff - 10 Sep 2018
Time Series with Matrix Profile
Build | Dev | |
---|---|---|
Linux x86_64 | ||
OSX | ||
Windows | ||
Coverage |
Overview
R Functions implementing UCR Matrix Profile Algorithm (http://www.cs.ucr.edu/~eamonn/MatrixProfile.html).
This package allows you to use the Matrix Profile concept as a toolkit.
This package provides:
- Algorithms to build a Matrix Profile: STAMP, STOMP, SCRIMP (experimental), SIMPLE and MSTOMP.
- Algorithms for MOTIF search for Unidimensional and Multidimensional Matrix Profiles.
- Algorithm for Chains search for Unidimensional Matrix Profile.
- Algorithms for Semantic Segmentation (FLUSS) and Weakly Labeled data (SDTS).
- Algorithm for Salient Subsections detection allowing MDS plotting.
- Basic plotting for all outputs generated here.
- Sequencial workflow, see below.
# Basic workflow:
matrix <- tsmp(data, window_size = 30) %>% find_motif(n_motifs = 3) %>% plot()
# SDTS still have a unique way to work:
model <- sdts_train(data, labels, windows); result <- sdts_predict(model, data, round(mean(windows)))
Please refer to the User Manual for more details.
Please be welcome to suggest improvements.
Performance on an Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
Elapsed Time | Data size | Window size | Cores | |
---|---|---|---|---|
stomp_par() | 45.17s | 55000 | 150 | 8 |
stomp() | 76.68s | 55000 | 150 | 1 |
mstomp_par() | 113.03s | 55000 | 150 | 8 |
mstomp() | 238.81s | 55000 | 150 | 1 |
stamp_par() | 852.11s | 55000 | 150 | 8 |
stamp() | 2862.79s | 55000 | 150 | 1 |
Installation
# Install the released version from CRAN
install.packages("tsmp")
# Or the development version from GitHub:
# install.packages("devtools")
devtools::install_github("franzbischoff/tsmp")
Currently available Features
- STAMP (single and multi-thread versions)
- STOMP (single and multi-thread versions)
- SCRIMP (single-thread, still experimental)
- Time Series Chains
- Multivariate STOMP (mSTOMP)
- Multivariate MOTIF Search (from mSTOMP)
- Salient Subsequences search for Multidimensional Space
- Scalable Dictionary learning for Time Series (SDTS) prediction
- FLUSS (Fast Low-cost Unipotent Semantic Segmentation)
- SiMPle-Fast (Fast Similarity Matrix Profile for Music Analysis and Exploration)
- Annotation vectors (e.g.: Stop-word MOTIF bias, Actionability bias)
- FLUSS Arc Plot and SiMPle Arc Plot
- Misc:
- MASS v2.0
- Fast moving average
- Fast moving SD
Road map
- MOTIFs under Uniform Scaling
- Exact Detection of Variable Length Motifs
- Profile-Based Shapelet Discovery
- GPU-STOMP
- Real-time version of previous algorithms (STAMPI, FLOSS, etc)
- MASS Extensions (ADP, WQ, QwG)
Other projects with Matrix Profile
- Python: https://github.com/ZiyaoWei/pyMatrixProfile
- Python: https://github.com/jbeleno/owlpy
- Python: https://github.com/javidlakha/matrix-profile
- CUDA: https://github.com/zpzim/STOMPSelfJoin
- CUDA: https://github.com/zpzim/SCAMP
Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.