All Projects → DynamicTimeWarping → dtw-python

DynamicTimeWarping / dtw-python

Licence: GPL-3.0 license
Python port of R's Comprehensive Dynamic Time Warp algorithms package

Programming Languages

python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
cython
566 projects
Makefile
30231 projects

Projects that are alternatives of or similar to dtw-python

scala-timeseries-lib
Lightweight, functional and correct time-series library for scala. Easy manipulation, filtering and combination of time-series data.
Stars: ✭ 31 (-77.7%)
Mutual labels:  time, timeseries
Timeseries Clustering Vae
Variational Recurrent Autoencoder for timeseries clustering in pytorch
Stars: ✭ 190 (+36.69%)
Mutual labels:  timeseries, clustering
Dtaidistance
Time series distances: Dynamic Time Warping (DTW)
Stars: ✭ 499 (+258.99%)
Mutual labels:  timeseries, clustering
tsam
A python-based time series aggregation module (tsam) which can be used to reduce the number of time steps using typical periods or by decreasing the temporal resolution
Stars: ✭ 112 (-19.42%)
Mutual labels:  timeseries, clustering
Sweep
Extending broom for time series forecasting
Stars: ✭ 143 (+2.88%)
Mutual labels:  time, timeseries
Timetk
A toolkit for working with time series in R
Stars: ✭ 371 (+166.91%)
Mutual labels:  time, timeseries
Khiva
An open-source library of algorithms to analyse time series in GPU and CPU.
Stars: ✭ 161 (+15.83%)
Mutual labels:  timeseries, clustering
Brein Time Utilities
Library which contains several time-dependent data and index structures (e.g., IntervalTree, BucketTimeSeries), as well as algorithms.
Stars: ✭ 94 (-32.37%)
Mutual labels:  time, timeseries
Tibbletime
Time-aware tibbles
Stars: ✭ 175 (+25.9%)
Mutual labels:  time, timeseries
modeltime.ensemble
Time Series Ensemble Forecasting
Stars: ✭ 65 (-53.24%)
Mutual labels:  time, timeseries
algorithms
The All ▲lgorithms documentation website.
Stars: ✭ 114 (-17.99%)
Mutual labels:  clustering
tir
Have time.ir in shell!
Stars: ✭ 114 (-17.99%)
Mutual labels:  time
AnnA Anki neuronal Appendix
Using machine learning on your anki collection to enhance the scheduling via semantic clustering and semantic similarity
Stars: ✭ 39 (-71.94%)
Mutual labels:  clustering
silverware-calendar
SilverWare Calendar Module
Stars: ✭ 15 (-89.21%)
Mutual labels:  time
timeleft
⏳ Don't waste your time or time will waste you! ☠️ One tends to consume time on low-return stuff, superficial entertainment. 📺 Things they don't actually want to do. One should make the most of his time. ⏱ Get busy living.
Stars: ✭ 18 (-87.05%)
Mutual labels:  time
postsack
Visually cluster your emails by sender, domain, and more to identify waste
Stars: ✭ 288 (+107.19%)
Mutual labels:  clustering
FM-JSON-Types
FileMaker Data Types in JSON
Stars: ✭ 14 (-89.93%)
Mutual labels:  time
bs-dynamic-import
📦🚀 BuckleScript dynamic import interop on JavaScript environment
Stars: ✭ 31 (-77.7%)
Mutual labels:  dynamic
Linux Dynamic Wallpapers
Dynamic Wallpapers for Linux
Stars: ✭ 305 (+119.42%)
Mutual labels:  dynamic
acoustic-keylogger
Pipeline of a keylogging attack using just an audio signal and unsupervised learning.
Stars: ✭ 80 (-42.45%)
Mutual labels:  clustering

Welcome to the dtw-python package

Comprehensive implementation of Dynamic Time Warping algorithms.

DTW is a family of algorithms which compute the local stretch or compression to apply to the time axes of two timeseries in order to optimally map one (query) onto the other (reference). DTW outputs the remaining cumulative distance between the two and, if desired, the mapping itself (warping function). DTW is widely used e.g. for classification and clustering tasks in econometrics, chemometrics and general timeseries mining.

This package provides the most complete, freely-available (GPL) implementation of Dynamic Time Warping-type (DTW) algorithms up to date. It is a faithful Python equivalent of R's DTW package on CRAN. Supports arbitrary local (e.g. symmetric, asymmetric, slope-limited) and global (windowing) constraints, fast native code, several plot styles, and more.

Documentation

Please refer to the main DTW suite homepage for the full documentation and background.

The best place to learn how to use the package (and a hopefully a decent deal of background on DTW) is the companion paper Computing and Visualizing Dynamic Time Warping Alignments in R: The dtw Package, which the Journal of Statistical Software makes available for free. It includes detailed instructions and extensive background on things like multivariate matching, open-end variants for real-time use, interplay between recursion types and length normalization, history, etc.

To have a look at how the dtw package is used in domains ranging from bioinformatics to chemistry to data mining, have a look at the list of citing papers.

Note: R is the prime environment for the DTW suite. Python's docstrings and the API below are generated automatically for the sake of consistency and maintainability, and may not be as pretty.

Features

The implementation provides:

  • arbitrary windowing functions (global constraints), eg. the Sakoe-Chiba band and the Itakura parallelogram;
  • arbitrary transition types (also known as step patterns, slope constraints, local constraints, or DP-recursion rules). This includes dozens of well-known types:
  • partial matches: open-begin, open-end, substring matches
  • proper, pattern-dependent, normalization (exact average distance per step)
  • the Minimum Variance Matching (MVM) algorithm (Latecki et al.)

In addition to computing alignments, the package provides:

  • methods for plotting alignments and warping functions in several classic styles (see plot gallery);
  • graphical representation of step patterns;
  • functions for applying a warping function, either direct or inverse;
  • a fast native (C) core.

Multivariate timeseries can be aligned with arbitrary local distance definitions, leveraging the [proxy::dist](https://www.rdocumentation.org/packages/proxy/versions/0.4-23/topics/dist) (R) or [scipy.spatial.distance.cdist](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.cdist.html) (Python) functions.

Citation

When using in academic works please cite:

    1. Giorgino. Computing and Visualizing Dynamic Time Warping Alignments in R: The dtw Package. J. Stat. Soft., 31 (2009) doi:10.18637/jss.v031.i07.

When using partial matching (unconstrained endpoints via the open.begin/open.end options) and/or normalization strategies, please also cite:

    1. Tormene, T. Giorgino, S. Quaglini, M. Stefanelli (2008). Matching Incomplete Time Series with Dynamic Time Warping: An Algorithm and an Application to Post-Stroke Rehabilitation. Artificial Intelligence in Medicine, 45(1), 11-34. doi:10.1016/j.artmed.2008.11.007

Source code

Releases (stable versions) are available in the dtw-python project on PyPi. Development occurs on GitHub at <https://github.com/DynamicTimeWarping/dtw-python>.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].