tslearn is a Python package that provides machine learning tools for the analysis of time series.
This package builds on scikit-learn, numpy and scipy libraries.
If you would like to contribute to tslearn, please have a look at our contribution guidelines.
Cython
numpy
numba
scipy
scikit-learn
joblib
numba
If you plan to use the shapelets module, keras and tensorflow should also be installed.
h5py is required for reading or writing models using the hdf5 file format.
The easiest way to install tslearn is probably via conda:
conda install -c conda-forge tslearnWhen using PyPI, C++ build tools should be available to perform installation.
Using pip should also work fine:
pip install tslearnIn this case, you should have numpy, cython and C++ build tools available
at build time.
If you want to get tslearn's latest version, you can refer to the repository
hosted at github:
pip install git+https://github.com/rtavenar/tslearn.gitIt seems on some platforms Cython dependency does not install properly.
If you experiment such an issue, try installing it with the following command:
pip install cythonbefore you start installing tslearn.
If it still does not work, we suggest you switch to conda installation.
The documentation, including a gallery of examples, is hosted at readthedocs.
- A
generatorsmodule provides Random Walks generators - A
datasetsmodule provides access to the famous UCR/UEA datasets through theUCR_UEA_datasetsclass - A
preprocessingmodule provides standard time series scalers - A
metricsmodule provides:- Dynamic Time Warping (DTW) (with Sakoe-Chiba band and Itakura parallelogram variants)
- LB_Keogh
- Global Alignment Kernel
- Soft-DTW from Cuturi and Blondel
- A
neighborsmodule includes nearest neighbor algorithms to be used with time series - An
svmmodule includes Support Vector Machine algorithms with:- Standard kernels offered in
sklearn(with adequate array reshaping done for you) - Global Alignment Kernel
- Standard kernels offered in
- A
clusteringmodule includes the following time series clustering algorithms:- Standard Euclidean k-means (with adequate array reshaping done for you)
- Based on
tslearn.barycenters
- Based on
- DBA k-means from Petitjean et al.
- Based on
tslearn.barycentersthat offers DBA facility that could be used for other applications than just k-means
- Based on
- Global Alignment kernel k-means
- KShape clustering from Paparizzos and Gravano
- Soft-DTW k-means from Cuturi and Blondel
- Based on
tslearn.barycentersthat offers Soft-DTW barycenter computation
- Based on
- It also provides a way to compute the silhouette coefficient for given clustering and metric
- Standard Euclidean k-means (with adequate array reshaping done for you)
- A
shapeletsmodule includes an efficient implementation of the Learning Time-Series method from Grabocka et al.- Warning: to use the
shapeletsmodule, two extra dependencies are required:kerasandtensorflow
- Warning: to use the
- A
piecewisemodule includes standard time series transformations, as well as the corresponding distances:- Piecewise Aggregate Approximation (PAA)
- Symbolic Aggregate approXimation (SAX)
- 1d-Symbolic Aggregate approXimation (1d-SAX)
Have a look there for a list of suggested features. If you want other ML methods for time series to be added to this TODO list, do not hesitate to open an issue! See our contribution guidelines for more information about how to proceed.
Authors would like to thank Mathieu Blondel for providing code for
Kernel k-means and Soft-DTW (both
distributed under BSD license) that are used in the clustering and metrics modules of this library.
If you use tslearn in a scientific publication, we would appreciate citations:
@misc{tslearn,
title={tslearn: A machine learning toolkit dedicated to time-series
data},
author={Romain Tavenard and Johann Faouzi and Gilles Vandewiele and
Felix Divo and Guillaume Androz and Chester Holtz and Marie
Payne and Roman Yurchak and Marc Ru{\ss}wurm and Kushal
Kolar and Eli Woods},
year={2017},
note={\url{https://github.com/rtavenar/tslearn}}
}