
Libreria Python scalabile per l’analisi di serie temporali attraverso i matrix profiles, che consente la scoperta di motivi, il rilevamento di anomalie, la segmentazione semantica e l’estrazione di pattern in streaming.
|PyPI Version| |Conda Forge Version| |PyPI Downloads| |License| |Test Status| |Code Coverage|
|RTD Status| |Binder| |JOSS| |NumFOCUS|
.. |PyPI Version| image:: https://img.shields.io/pypi/v/stumpy.svg :target: https://pypi.org/project/stumpy/ :alt: PyPI Version .. |Conda Forge Version| image:: https://anaconda.org/conda-forge/stumpy/badges/version.svg :target: https://anaconda.org/conda-forge/stumpy :alt: Conda-Forge Version .. |PyPI Downloads| image:: https://static.pepy.tech/badge/stumpy/month :target: https://pepy.tech/project/stumpy :alt: PyPI Downloads .. |License| image:: https://img.shields.io/pypi/l/stumpy.svg :target: https://github.com/stumpy-dev/stumpy/blob/main/LICENSE.txt :alt: License .. |Test Status| image:: https://github.com/stumpy-dev/stumpy/workflows/Tests/badge.svg :target: https://github.com/stumpy-dev/stumpy/actions?query=workflow%3ATests+branch%3Amain :alt: Test Status .. |Code Coverage| image:: https://img.shields.io/badge/Coverage-100%25-green :alt: Code Coverage .. |RTD Status| image:: https://readthedocs.org/projects/stumpy/badge/?version=latest :target: https://stumpy.readthedocs.io/ :alt: ReadTheDocs Status .. |Binder| image:: https://mybinder.org/badge_logo.svg :target: https://mybinder.org/v2/gh/stumpy-dev/stumpy/main?filepath=notebooks :alt: Binder .. |JOSS| image:: http://joss.theoj.org/papers/10.21105/joss.01504/status.svg :target: https://doi.org/10.21105/joss.01504 :alt: JOSS .. |DOI| image:: https://zenodo.org/badge/184809315.svg :target: https://zenodo.org/badge/latestdoi/184809315 :alt: DOI .. |NumFOCUS| image:: https://img.shields.io/badge/NumFOCUS-Affiliated%20Project-orange.svg?style=flat&colorA=E1523D&colorB=007D8A :target: https://numfocus.org/sponsored-projects/affiliated-projects :alt: NumFOCUS Affiliated Project .. |Twitter| image:: https://img.shields.io/twitter/follow/stumpy_dev.svg?style=social :target: https://twitter.com/stumpy_dev :alt: Twitter
|
.. image:: https://raw.githubusercontent.com/stumpy-dev/stumpy/main/docs/images/stumpy_logo_small.png :target: https://github.com/stumpy-dev/stumpy :alt: Logo STUMPY
STUMPY è una libreria Python potente e scalabile che calcola in modo efficiente quella che viene chiamata matrix profile <https://stumpy.readthedocs.io/en/latest/Tutorial_The_Matrix_Profile.html>__, che è solo un modo accademico per dire "per ogni sottosequenza (verde) all'interno della tua serie temporale, identifica automaticamente il suo corrispondente nearest-neighbor (grigio)":
.. image:: https://github.com/stumpy-dev/stumpy/blob/main/docs/images/stumpy_demo.gif?raw=true :alt: GIF animata di STUMPY
La cosa importante è che, una volta calcolata la matrix profile (pannello centrale qui sopra), questa può essere utilizzata per una varietà di attività di data mining su serie temporali, come ad esempio:
e altro ancora ... <https://www.cs.ucr.edu/~eamonn/100_Time_Series_Data_Mining_Questions__with_Answers.pdf>__Che tu sia un accademico, un data scientist, uno sviluppatore di software o un appassionato di serie temporali, STUMPY è semplice da installare e il nostro obiettivo è consentirti di ottenere più rapidamente informazioni (insights) dalle tue serie temporali. Consulta la documentazione <https://stumpy.readthedocs.io/en/latest/>__ per maggiori informazioni.
Consulta la nostra documentazione API <https://stumpy.readthedocs.io/en/latest/api.html>__ per un elenco completo delle funzioni disponibili e consulta i nostri tutorial <https://stumpy.readthedocs.io/en/latest/tutorials.html>__ informativi per casi d'uso esemplificativi più completi. Qui di seguito troverai frammenti di codice che dimostrano rapidamente come usare STUMPY.
Utilizzo tipico (dati di serie temporali unidimensionali) con STUMP <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.stump>__:
.. code:: python
import stumpy
import numpy as np
if __name__ == "__main__":
your_time_series = np.random.rand(10000)
window_size = 50 # Approximately, how many data points might be found in a pattern
matrix_profile = stumpy.stump(your_time_series, m=window_size)
Utilizzo distribuito per dati di serie temporali unidimensionali con Dask Distributed tramite STUMPED <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.stumped>__:
.. code:: python
import stumpy
import numpy as np
from dask.distributed import Client
if __name__ == "__main__":
with Client() as dask_client:
your_time_series = np.random.rand(10000)
window_size = 50 # Approximately, how many data points might be found in a pattern
matrix_profile = stumpy.stumped(dask_client, your_time_series, m=window_size)
Utilizzo GPU per dati di serie temporali unidimensionali con GPU-STUMP <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.gpu_stump>__:
.. code:: python
import stumpy
import numpy as np
from numba import cuda
if __name__ == "__main__":
your_time_series = np.random.rand(10000)
window_size = 50 # Approximately, how many data points might be found in a pattern
all_gpu_devices = [device.id for device in cuda.list_devices()] # Get a list of all available GPU devices
matrix_profile = stumpy.gpu_stump(your_time_series, m=window_size, device_id=all_gpu_devices)
Dati di serie temporali multidimensionali con MSTUMP <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.mstump>__:
.. code:: python
import stumpy
import numpy as np
if __name__ == "__main__":
your_time_series = np.random.rand(3, 1000) # Each row represents data from a different dimension while each column represents data from the same dimension
window_size = 50 # Approximately, how many data points might be found in a pattern
matrix_profile, matrix_profile_indices = stumpy.mstump(your_time_series, m=window_size)
Analisi distribuita di dati di serie temporali multidimensionali con Dask Distributed MSTUMPED <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.mstumped>__:
.. code:: python
import stumpy
import numpy as np
from dask.distributed import Client
if __name__ == "__main__":
with Client() as dask_client:
your_time_series = np.random.rand(3, 1000) # Each row represents data from a different dimension while each column represents data from the same dimension
window_size = 50 # Approximately, how many data points might be found in a pattern
matrix_profile, matrix_profile_indices = stumpy.mstumped(dask_client, your_time_series, m=window_size)
Catene di serie temporali con Anchored Time Series Chains (ATSC) <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.atsc>__:
.. code:: python
import stumpy
import numpy as np
if __name__ == "__main__":
your_time_series = np.random.rand(10000)
window_size = 50 # Approximately, how many data points might be found in a pattern
matrix_profile = stumpy.stump(your_time_series, m=window_size)
left_matrix_profile_index = matrix_profile[:, 2]
right_matrix_profile_index = matrix_profile[:, 3]
idx = 10 # Subsequence index for which to retrieve the anchored time series chain for
anchored_chain = stumpy.atsc(left_matrix_profile_index, right_matrix_profile_index, idx)
all_chain_set, longest_unanchored_chain = stumpy.allc(left_matrix_profile_index, right_matrix_profile_index)
Segmentazione semantica con Fast Low-cost Unipotent Semantic Segmentation (FLUSS) <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.fluss>__:
.. code:: python
import stumpy
import numpy as np
if __name__ == "__main__":
your_time_series = np.random.rand(10000)
window_size = 50 # Approximately, how many data points might be found in a pattern
matrix_profile = stumpy.stump(your_time_series, m=window_size)
subseq_len = 50
correct_arc_curve, regime_locations = stumpy.fluss(matrix_profile[:, 1],
L=subseq_len,
n_regimes=2,
excl_factor=1
)
Le versioni supportate di Python e NumPy sono determinate secondo la politica di deprecazione NEP 29 <https://numpy.org/neps/nep-0029-deprecation_policy.html>__.
NumPy <http://www.numpy.org/>__Numba <http://numba.pydata.org/>__SciPy <https://www.scipy.org/>__conda:
.. code:: bash
conda install -c conda-forge stumpy
pip:
.. code:: bash
python -m pip install stumpy
pixi:
.. code:: bash
pixi add stumpy
uv:
.. code:: bash
uv add stumpy
Per installare stumpy dal sorgente, consulta le istruzioni nella documentazione <https://stumpy.readthedocs.io/en/latest/install.html>__.
Per comprendere e apprezzare appieno gli algoritmi e le applicazioni sottostanti, è indispensabile leggere le pubblicazioni originali_. Per un esempio più dettagliato su come usare STUMPY, consulta la documentazione <https://stumpy.readthedocs.io/en/latest/>__ più recente oppure esplora i nostri tutorial pratici <https://stumpy.readthedocs.io/en/latest/tutorials.html>__.
Abbiamo testato le prestazioni del calcolo della matrix profile esatta utilizzando la versione del codice compilata con Numba JIT su dati di serie temporali generati casualmente con varie lunghezze (cioè np.random.rand(n)) insieme a diverse risorse hardware CPU e GPU <hardware_>_.
.. image:: https://raw.githubusercontent.com/stumpy-dev/stumpy/main/docs/images/performance.png :alt: Grafico delle prestazioni STUMPY
I risultati grezzi sono riportati nella tabella sottostante come Ore:Minuti:Secondi.Millisecondi e con una dimensione della finestra costante di m = 50. Nota che questi tempi di esecuzione riportati includono il tempo necessario per spostare i dati dall'host a tutti i dispositivi GPU. Potrebbe essere necessario scorrere verso il lato destro della tabella per vedere tutti i tempi di esecuzione.
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| i | n = 2\ :sup:i | GPU-STOMP | STUMP.2 | STUMP.16 | STUMPED.128 | STUMPED.256 | GPU-STUMP.1 | GPU-STUMP.2 | GPU-STUMP.DGX1 | GPU-STUMP.DGX2 |
+==========+===================+==============+=============+=============+=============+=============+=============+================+================+
| 6 | 64 | 00:00:10.00 | 00:00:00.00 | 00:00:00.00 | 00:00:05.77 | 00:00:06.08 | 00:00:00.03 | 00:00:01.63 | NaN | NaN |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 7 | 128 | 00:00:10.00 | 00:00:00.00 | 00:00:00.00 | 00:00:05.93 | 00:00:07.29 | 00:00:00.04 | 00:00:01.66 | NaN | NaN |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 8 | 256 | 00:00:10.00 | 00:00:00.00 | 00:00:00.01 | 00:00:05.95 | 00:00:07.59 | 00:00:00.08 | 00:00:01.69 | 00:00:06.68 | 00:00:25.68 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 9 | 512 | 00:00:10.00 | 00:00:00.00 | 00:00:00.02 | 00:00:05.97 | 00:00:07.47 | 00:00:00.13 | 00:00:01.66 | 00:00:06.59 | 00:00:27.66 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 10 | 1024 | 00:00:10.00 | 00:00:00.02 | 00:00:00.04 | 00:00:05.69 | 00:00:07.64 | 00:00:00.24 | 00:00:01.72 | 00:00:06.70 | 00:00:30.49 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 11 | 2048 | NaN | 00:00:00.05 | 00:00:00.09 | 00:00:05.60 | 00:00:07.83 | 00:00:00.53 | 00:00:01.88 | 00:00:06.87 | 00:00:31.09 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 12 | 4096 | NaN | 00:00:00.22 | 00:00:00.19 | 00:00:06.26 | 00:00:07.90 | 00:00:01.04 | 00:00:02.19 | 00:00:06.91 | 00:00:33.93 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 13 | 8192 | NaN | 00:00:00.50 | 00:00:00.41 | 00:00:06.29 | 00:00:07.73 | 00:00:01.97 | 00:00:02.49 | 00:00:06.61 | 00:00:33.81 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 14 | 16384 | NaN | 00:00:01.79 | 00:00:00.99 | 00:00:06.24 | 00:00:08.18 | 00:00:03.69 | 00:00:03.29 | 00:00:07.36 | 00:00:35.23 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 15 | 32768 | NaN | 00:00:06.17 | 00:00:02.39 | 00:00:06.48 | 00:00:08.29 | 00:00:07.45 | 00:00:04.93 | 00:00:07.02 | 00:00:36.09 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 16 | 65536 | NaN | 00:00:22.94 | 00:00:06.42 | 00:00:07.33 | 00:00:09.01 | 00:00:14.89 | 00:00:08.12 | 00:00:08.10 | 00:00:36.54 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 17 | 131072 | 00:00:10.00 | 00:01:29.27 | 00:00:19.52 | 00:00:09.75 | 00:00:10.53 | 00:00:29.97 | 00:00:15.42 | 00:00:09.45 | 00:00:37.33 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 18 | 262144 | 00:00:18.00 | 00:05:56.50 | 00:01:08.44 | 00:00:33.38 | 00:00:24.07 | 00:00:59.62 | 00:00:27.41 | 00:00:13.18 | 00:00:39.30 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 19 | 524288 | 00:00:46.00 | 00:25:34.58 | 00:03:56.82 | 00:01:35.27 | 00:03:43.66 | 00:01:56.67 | 00:00:54.05 | 00:00:19.65 | 00:00:41.45 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 20 | 1048576 | 00:02:30.00 | 01:51:13.43 | 00:19:54.75 | 00:04:37.15 | 00:03:01.16 | 00:05:06.48 | 00:02:24.73 | 00:00:32.95 | 00:00:46.14 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 21 | 2097152 | 00:09:15.00 | 09:25:47.64 | 03:05:07.64 | 00:13:36.51 | 00:08:47.47 | 00:20:27.94 | 00:09:41.43 | 00:01:06.51 | 00:01:02.67 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 22 | 4194304 | NaN | 36:12:23.74 | 10:37:51.21 | 00:55:44.43 | 00:32:06.70 | 01:21:12.33 | 00:38:30.86 | 00:04:03.26 | 00:02:23.47 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 23 | 8388608 | NaN | 143:16:09.94| 38:42:51.42 | 03:33:30.53 | 02:00:49.37 | 05:11:44.45 | 02:33:14.60 | 00:15:46.26 | 00:08:03.76 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 24 | 16777216 | NaN | NaN | NaN | 14:39:11.99 | 07:13:47.12 | 20:43:03.80 | 09:48:43.42 | 01:00:24.06 | 00:29:07.84 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| NaN | 17729800 | 09:16:12.00 | NaN | NaN | 15:31:31.75 | 07:18:42.54 | 23:09:22.43 | 10:54:08.64 | 01:07:35.39 | 00:32:51.55 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 25 | 33554432 | NaN | NaN | NaN | 56:03:46.81 | 26:27:41.29 | 83:29:21.06 | 39:17:43.82 | 03:59:32.79 | 01:54:56.52 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 26 | 67108864 | NaN | NaN | NaN | 211:17:37.60| 106:40:17.17| 328:58:04.68| 157:18:30.50| 15:42:15.94 | 07:18:52.91 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| NaN | 100000000 | 291:07:12.00 | NaN | NaN | NaN | 234:51:35.39| NaN | NaN | 35:03:44.61 | 16:22:40.81 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
| 27 | 134217728 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 64:41:55.09 | 29:13:48.12 |
+----------+-------------------+--------------+-------------+-------------+-------------+-------------+-------------+----------------+----------------+
^^^^^^^^^^^^^^^^^^ Risorse hardware ^^^^^^^^^^^^^^^^^^
.. _hardware:
GPU-STOMP: questi risultati sono riprodotti dall'articolo originale Matrix Profile II <https://ieeexplore.ieee.org/abstract/document/7837898>__ - NVIDIA Tesla K80 (contiene 2 GPU) e fungono da benchmark di prestazioni per il confronto.
STUMP.2: stumpy.stump <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.stump>__ eseguito con 2 CPU in totale - 2 processori Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz parallelizzati con Numba su un singolo server senza Dask.
STUMP.16: stumpy.stump <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.stump>__ eseguito con 16 CPU in totale - 16 processori Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz parallelizzati con Numba su un singolo server senza Dask.STUMPED.128: stumpy.stumped <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.stumped>__ eseguito con 128 CPU in totale - 8x processori Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz x 16 server, parallelizzato con Numba e distribuito con Dask Distributed.
STUMPED.256: stumpy.stumped <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.stumped>__ eseguito con 256 CPU in totale - 8x processori Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz x 32 server, parallelizzato con Numba e distribuito con Dask Distributed.
GPU-STUMP.1: stumpy.gpu_stump <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.gpu_stump>__ eseguito con 1x NVIDIA GeForce GTX 1080 Ti GPU, 512 thread per blocco, limite di potenza 200W, compilato in CUDA con Numba e parallelizzato con Python multiprocessing
GPU-STUMP.2: stumpy.gpu_stump <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.gpu_stump>__ eseguito con 2x NVIDIA GeForce GTX 1080 Ti GPU, 512 thread per blocco, limite di potenza 200W, compilato in CUDA con Numba e parallelizzato con Python multiprocessing
GPU-STUMP.DGX1: stumpy.gpu_stump <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.gpu_stump>__ eseguito con 8x NVIDIA Tesla V100, 512 thread per blocco, compilato in CUDA con Numba e parallelizzato con Python multiprocessing
GPU-STUMP.DGX2: stumpy.gpu_stump <https://stumpy.readthedocs.io/en/latest/api.html#stumpy.gpu_stump>__ eseguito con 16x NVIDIA Tesla V100, 512 thread per blocco, compilato in CUDA con Numba e parallelizzato con Python multiprocessing
I test sono scritti nella directory tests ed eseguiti utilizzando PyTest <https://docs.pytest.org/en/latest/>__ e richiedono coverage.py per l'analisi della copertura del codice. I test possono essere eseguiti con:
.. code:: bash
./test.sh
STUMPY supporta Python 3.10+ <https://python3statement.org/>__ e, a causa dell'uso di nomi/identificatori di variabili unicode, non è compatibile con Python 2.x. Date le ridotte dipendenze, STUMPY potrebbe funzionare su versioni precedenti di Python, ma questo esula dall'ambito del nostro supporto e raccomandiamo vivamente di aggiornare alla versione più recente di Python.
Innanzitutto, per favore controlla le discussioni <https://github.com/stumpy-dev/stumpy/discussions>__ e le issue <https://github.com/stumpy-dev/stumpy/issues?utf8=%E2%9C%93&q=>__ su Github per vedere se la tua domanda ha già ricevuto risposta. Se non è disponibile una soluzione, sentiti libero di aprire una nuova discussione o issue e gli autori tenteranno di rispondere in tempi ragionevolmente rapidi.
Accogliamo con piacere contributi <https://github.com/stumpy-dev/stumpy/blob/main/CONTRIBUTING.md>__ in qualsiasi forma! L'assistenza con la documentazione, in particolare l'espansione dei tutorial, è sempre benvenuta. Per contribuire, per favore fai il fork del progetto <https://github.com/stumpy-dev/stumpy/fork>__, apporta le tue modifiche e invia una pull request. Faremo del nostro meglio per risolvere eventuali problemi con te e integrare il tuo codice nel ramo principale.
Se hai utilizzato questo codice in una pubblicazione scientifica e desideri citarlo, utilizza l'articolo del Journal of Open Source Software <http://joss.theoj.org/papers/10.21105/joss.01504>__.
S.M. Law, (2019). *STUMPY: A Powerful and Scalable Python Library for Time Series Data Mining*. Journal of Open Source Software, 4(39), 1504.
.. code:: bibtex
@article{law2019stumpy,
author = {Law, Sean M.},
title = {{STUMPY: A Powerful and Scalable Python Library for Time Series Data Mining}},
journal = {{The Journal of Open Source Software}},
volume = {4},
number = {39},
pages = {1504},
year = {2019}
}
.. _publications:
Yeh, Chin-Chia Michael, et al. (2016) Matrix Profile I: All Pairs Similarity Joins for Time Series: A Unifying View that Includes Motifs, Discords, and Shapelets. ICDM:1317-1322. Link <https://ieeexplore.ieee.org/abstract/document/7837992>__
Zhu, Yan, et al. (2016) Matrix Profile II: Exploiting a Novel Algorithm and GPUs to Break the One Hundred Million Barrier for Time Series Motifs and Joins. ICDM:739-748. Link <https://ieeexplore.ieee.org/abstract/document/7837898>__
Yeh, Chin-Chia Michael, et al. (2017) Matrix Profile VI: Meaningful Multidimensional Motif Discovery. ICDM:565-574. Link <https://ieeexplore.ieee.org/abstract/document/8215529>__
Zhu, Yan, et al. (2017) Matrix Profile VII: Time Series Chains: A New Primitive for Time Series Data Mining. ICDM:695-704. Link <https://ieeexplore.ieee.org/abstract/document/8215542>__
Gharghabi, Shaghayegh, et al. (2017) Matrix Profile VIII: Domain Agnostic Online Semantic Segmentation at Superhuman Performance Levels. ICDM:117-126. Link <https://ieeexplore.ieee.org/abstract/document/8215484>__
Zhu, Yan, et al. (2017) Exploiting a Novel Algorithm and GPUs to Break the Ten Quadrillion Pairwise Comparisons Barrier for Time Series Motifs and Joins. KAIS:203-236. Link <https://link.springer.com/article/10.1007%2Fs10115-017-1138-x>__
Zhu, Yan, et al. (2018) Matrix Profile XI: SCRIMP++: Time Series Motif Discovery at Interactive Speeds. ICDM:837-846. Link <https://ieeexplore.ieee.org/abstract/document/8594908>__
Yeh, Chin-Chia Michael, et al. (2018) Time Series Joins, Motifs, Discords and Shapelets: a Unifying View that Exploits the Matrix Profile. Data Min Knowl Disc:83-123. Link <https://link.springer.com/article/10.1007/s10618-017-0519-9>__
Gharghabi, Shaghayegh, et al. (2018) "Matrix Profile XII: MPdist: A Novel Time Series Distance Measure to Allow Data Mining in More Challenging Scenarios." ICDM:965-970. Link <https://ieeexplore.ieee.org/abstract/document/8594928>__
Zimmerman, Zachary, et al. (2019) Matrix Profile XIV: Scaling Time Series Motif Discovery with GPUs to Break a Quintillion Pairwise Comparisons a Day and Beyond. SoCC '19:74-86. Link <https://dl.acm.org/doi/10.1145/3357223.3362721>__
Akbarinia, Reza, and Betrand Cloez. (2019) Efficient Matrix Profile Computation Using Different Distance Functions. arXiv:1901.05708. Link <https://arxiv.org/abs/1901.05708>__
Kamgar, Kaveh, et al. (2019) Matrix Profile XV: Exploiting Time Series Consensus Motifs to Find Structure in Time Series Sets. ICDM:1156-1161. Link <https://ieeexplore.ieee.org/abstract/document/8970797>__
| STUMPY | Copyright 2019 TD Ameritrade. Rilasciato secondo i termini della licenza BSD a 3 clausole. | STUMPY è un marchio di TD Ameritrade IP Company, Inc. Tutti i diritti riservati.