GitHub - johannfaouzi/pyts: A Python package for time series transformation and...
source link: https://github.com/johannfaouzi/pyts
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
pyts: a Python package for time series transformation and classification
pyts is a Python package for time series transformation and classification. It aims to make time series classification easily accessible by providing preprocessing and utility tools, and implementations of state-of-the-art algorithms. Most of these algorithms transform time series, thus pyts provides several tools to perform these transformations.
Installation
Dependencies
pyts requires:
- Python (>= 3.5)
- NumPy (>= 1.15.4)
- SciPy (>= 1.1.0)
- Scikit-Learn (>=0.20.1)
- Numba (>=0.41.0)
To run the examples Matplotlib (>=2.0.0) is required.
User installation
If you already have a working installation of numpy, scipy, scikit-learn and
numba, you can easily install pyts using pip
pip install pyts
You can also get the latest version of pyts by cloning the repository
git clone https://github.com/johannfaouzi/pyts.git
cd pyts
pip install .
Testing
After installation, you can launch the test suite from outside the source directory using pytest:
pytest pyts
Changelog
See the changelog for a history of notable changes to pyts.
Development
The development of this package is in line with the one of the scikit-learn community. Therefore, you can refer to their Development Guide. A slight difference is the use of Numba instead of Cython for optimization.
Documentation
The section below gives some information about the implemented algorithms in pyts. For more information, please have a look at the HTML documentation available via ReadTheDocs.
Implemented features
pyts consists of the following modules:
-
approximation
: This module provides implementations of algorithms that approximate time series. Implemented algorithms are Piecewise Aggregate Approximation, Symbolic Aggregate approXimation, Discrete Fourier Transform, Multiple Coefficient Binning and Symbolic Fourier Approximation. -
bag_of_words
: This module consists of a class BagOfWords that transforms time series into bags of words. This approach is quite common in time series classification. -
classification
: This module provides implementations of algorithms that can classify time series. Implemented algorithms are KNeighborsClassifier, SAXVSM and BOSSVS. -
decomposition
: This module provides implementations of algorithms that decompose a time series into several time series. The only implemented algorithm is Singular Spectrum Analysis. -
image
: This module provides implementations of algorithms that transform time series into images. Implemented algorithms are Recurrence Plot, Gramian Angular Field and Markov Transition Field. -
metrics
: This module provides implementations of metrics that are specific to time series. Implemented metrics are Dynamic Time Warping with several variants and the BOSS metric. -
preprocessing
: This module provides most of the scikit-learn preprocessing tools but applied sample-wise (i.e. to each time series independently) instead of feature-wise, as well as an imputer of missing values using interpolation. More information is available at the pyts.preprocessing API documentation. -
transformation
: This module provides implementations of algorithms that transform a data set of time series with shape(n_samples, n_timestamps)
into a data set with shape(n_samples, n_features)
. Implemented algorithms are BOSS and WEASEL. -
utils
: a simple module with utility functions.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK