pyts


Namepyts JSON
Version 0.13.0 PyPI version JSON
download
home_pagehttps://github.com/johannfaouzi/pyts
SummaryA python package for time series classification
upload_time2023-06-18 12:35:25
maintainerJohann Faouzi
docs_urlNone
author
requires_python
licensenew BSD
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Build Status](https://dev.azure.com/johannfaouzi0034/johannfaouzi/_apis/build/status/johannfaouzi.pyts?branchName=main)](https://dev.azure.com/johannfaouzi0034/johannfaouzi/_build/latest?definitionId=1&branchName=main)
[![Documentation Status](https://readthedocs.org/projects/pyts/badge/?version=latest)](https://pyts.readthedocs.io/)
[![Codecov](https://codecov.io/gh/johannfaouzi/pyts/branch/main/graph/badge.svg)](https://codecov.io/gh/johannfaouzi/pyts)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyts.svg)](https://img.shields.io/pypi/pyversions/pyts.svg)
[![PyPI version](https://badge.fury.io/py/pyts.svg)](https://badge.fury.io/py/pyts)
[![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyts.svg)](https://anaconda.org/conda-forge/pyts)
[![CodeQL](https://github.com/johannfaouzi/pyts/workflows/CodeQL/badge.svg)](https://github.com/johannfaouzi/pyts/actions?query=workflow%3ACodeQL)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1244152.svg)](https://doi.org/10.5281/zenodo.1244152)

## pyts: a Python package for time series classification

pyts is a Python package for time series 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.8)
- NumPy (>= 1.22.4)
- SciPy (>= 1.8.1)
- Scikit-Learn (>= 1.2.0)
- Joblib (>= 1.1.1)
- Numba (>= 0.55.2)

To run the examples Matplotlib (>=2.0.0) is required.


#### User installation

If you already have a working installation of numpy, scipy, scikit-learn,
joblib and numba, you can easily install pyts using ``pip``

    pip install pyts

or ``conda`` via the ``conda-forge`` channel

    conda install -c conda-forge 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](https://pyts.readthedocs.io/en/stable/changelog.html)
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](https://scikit-learn.org/stable/developers/). 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](https://pyts.readthedocs.io/).

### Citation

If you use pyts in a scientific publication, we would appreciate
citations to the following [paper](http://www.jmlr.org/papers/v21/19-763.html):
```
Johann Faouzi and Hicham Janati. pyts: A python package for time series classification.
Journal of Machine Learning Research, 21(46):1−6, 2020.
```

Bibtex entry:
```
@article{JMLR:v21:19-763,
  author  = {Johann Faouzi and Hicham Janati},
  title   = {pyts: A Python Package for Time Series Classification},
  journal = {Journal of Machine Learning Research},
  year    = {2020},
  volume  = {21},
  number  = {46},
  pages   = {1-6},
  url     = {http://jmlr.org/papers/v21/19-763.html}
}
```

### Implemented features

**Note: the content described in this section corresponds to the main branch
(i.e., the latest version), and not the latest released version. You may have to
install the latest version to use some of these features.**

pyts consists of the following modules:

- `approximation`: This module provides implementations of algorithms that
approximate time series. Implemented algorithms are
[Piecewise Aggregate Approximation](https://pyts.readthedocs.io/en/latest/generated/pyts.approximation.PiecewiseAggregateApproximation.html),
[Symbolic Aggregate approXimation](https://pyts.readthedocs.io/en/latest/generated/pyts.approximation.SymbolicAggregateApproximation.html),
[Discrete Fourier Transform](https://pyts.readthedocs.io/en/latest/generated/pyts.approximation.DiscreteFourierTransform.html),
[Multiple Coefficient Binning](https://pyts.readthedocs.io/en/latest/generated/pyts.approximation.MultipleCoefficientBinning.html) and
[Symbolic Fourier Approximation](https://pyts.readthedocs.io/en/latest/generated/pyts.approximation.SymbolicFourierApproximation.html).

- `bag_of_words`: This module provide tools to transform time series into bags
of words. Implemented algorithms are
[WordExtractor](https://pyts.readthedocs.io/en/latest/generated/pyts.bag_of_words.WordExtractor.html) and
[BagOfWords](https://pyts.readthedocs.io/en/latest/generated/pyts.bag_of_words.BagOfWords.html).


- `classification`: This module provides implementations of algorithms that
can classify time series. Implemented algorithms are
[KNeighborsClassifier](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.KNeighborsClassifier.html),
[SAXVSM](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.SAXVSM.html),
[BOSSVS](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.BOSSVS.html),
[LearningShapelets](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.LearningShapelets.html),
[TimeSeriesForest](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.TimeSeriesForest.html) and
[TSBF](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.TSBF.html).

- `datasets`: This module provides utilities to make or load toy datasets,
as well as fetching datasets from the
[UEA & UCR Time Series Classification Repository](http://www.timeseriesclassification.com).

- `decomposition`: This module provides implementations of algorithms that
decompose a time series into several time series. The only implemented
algorithm is
[Singular Spectrum Analysis](https://pyts.readthedocs.io/en/latest/generated/pyts.decomposition.SingularSpectrumAnalysis.html).

- `image`: This module provides implementations of algorithms that transform
time series into images. Implemented algorithms are
[Recurrence Plot](https://pyts.readthedocs.io/en/latest/generated/pyts.image.RecurrencePlot.html),
[Gramian Angular Field](https://pyts.readthedocs.io/en/latest/generated/pyts.image.GramianAngularField.html) and
[Markov Transition Field](https://pyts.readthedocs.io/en/latest/generated/pyts.image.MarkovTransitionField.html).

- `metrics`: This module provides implementations of metrics that are specific
to time series. Implemented metrics are
[Dynamic Time Warping](https://pyts.readthedocs.io/en/latest/generated/pyts.metrics.dtw.html)
with several variants and the
[BOSS](https://pyts.readthedocs.io/en/latest/generated/pyts.metrics.boss.html)
metric.

- `multivariate`: This modules provides utilities to deal with multivariate
time series. Available tools are
[MultivariateTransformer](https://pyts.readthedocs.io/en/latest/generated/pyts.multivariate.transformation.MultivariateTransformer.html) and
[MultivariateClassifier](https://pyts.readthedocs.io/en/latest/generated/pyts.multivariate.classification.MultivariateClassifier.html)
to transform and classify multivariate time series using tools for univariate
time series respectively, as well as
[JointRecurrencePlot](https://pyts.readthedocs.io/en/latest/generated/pyts.multivariate.image.JointRecurrencePlot.html) and
[WEASEL+MUSE](https://pyts.readthedocs.io/en/latest/generated/pyts.multivariate.transformation.WEASELMUSE.html).

- `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](https://pyts.readthedocs.io/en/latest/generated/pyts.preprocessing.InterpolationImputer.html)
of missing values using interpolation. More information is available at the
[pyts.preprocessing API documentation](https://pyts.readthedocs.io/en/latest/api.html#module-pyts.preprocessing).

- `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_extracted_features)`. Implemented algorithms are
[BagOfPatterns](https://pyts.readthedocs.io/en/latest/generated/pyts.transformation.BagOfPatterns.html),
[BOSS](https://pyts.readthedocs.io/en/latest/generated/pyts.transformation.BOSS.html),
[ShapeletTransform](https://pyts.readthedocs.io/en/latest/generated/pyts.transformation.ShapeletTransform.html),
[WEASEL](https://pyts.readthedocs.io/en/latest/generated/pyts.transformation.WEASEL.html) and
[ROCKET](https://pyts.readthedocs.io/en/latest/generated/pyts.transformation.ROCKET.html).

- `utils`: a simple module with
[utility functions](https://pyts.readthedocs.io/en/latest/api.html#module-pyts.utils).

## License
The contents of this repository is under a [BSD 3-Clause License](https://github.com/johannfaouzi/pyts/blob/main/LICENSE.txt).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/johannfaouzi/pyts",
    "name": "pyts",
    "maintainer": "Johann Faouzi",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "johann.faouzi@gmail.com",
    "keywords": "",
    "author": "",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/97/2e/ecb645d86e0e2d0b5d107b25a7e89e965f7e20befe0dfdcae26eeffe62c8/pyts-0.13.0.tar.gz",
    "platform": null,
    "description": "[![Build Status](https://dev.azure.com/johannfaouzi0034/johannfaouzi/_apis/build/status/johannfaouzi.pyts?branchName=main)](https://dev.azure.com/johannfaouzi0034/johannfaouzi/_build/latest?definitionId=1&branchName=main)\n[![Documentation Status](https://readthedocs.org/projects/pyts/badge/?version=latest)](https://pyts.readthedocs.io/)\n[![Codecov](https://codecov.io/gh/johannfaouzi/pyts/branch/main/graph/badge.svg)](https://codecov.io/gh/johannfaouzi/pyts)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyts.svg)](https://img.shields.io/pypi/pyversions/pyts.svg)\n[![PyPI version](https://badge.fury.io/py/pyts.svg)](https://badge.fury.io/py/pyts)\n[![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyts.svg)](https://anaconda.org/conda-forge/pyts)\n[![CodeQL](https://github.com/johannfaouzi/pyts/workflows/CodeQL/badge.svg)](https://github.com/johannfaouzi/pyts/actions?query=workflow%3ACodeQL)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1244152.svg)](https://doi.org/10.5281/zenodo.1244152)\n\n## pyts: a Python package for time series classification\n\npyts is a Python package for time series classification. It\naims to make time series classification easily accessible by providing\npreprocessing and utility tools, and implementations of\nstate-of-the-art algorithms. Most of these algorithms transform time series,\nthus pyts provides several tools to perform these transformations.\n\n\n### Installation\n\n#### Dependencies\n\npyts requires:\n\n- Python (>= 3.8)\n- NumPy (>= 1.22.4)\n- SciPy (>= 1.8.1)\n- Scikit-Learn (>= 1.2.0)\n- Joblib (>= 1.1.1)\n- Numba (>= 0.55.2)\n\nTo run the examples Matplotlib (>=2.0.0) is required.\n\n\n#### User installation\n\nIf you already have a working installation of numpy, scipy, scikit-learn,\njoblib and numba, you can easily install pyts using ``pip``\n\n    pip install pyts\n\nor ``conda`` via the ``conda-forge`` channel\n\n    conda install -c conda-forge pyts\n\nYou can also get the latest version of pyts by cloning the repository\n\n    git clone https://github.com/johannfaouzi/pyts.git\n    cd pyts\n    pip install .\n\n\n#### Testing\n\nAfter installation, you can launch the test suite from outside the source\ndirectory using pytest:\n\n    pytest pyts\n\n\n### Changelog\n\nSee the [changelog](https://pyts.readthedocs.io/en/stable/changelog.html)\nfor a history of notable changes to pyts.\n\n### Development\n\nThe development of this package is in line with the one of the scikit-learn\ncommunity. Therefore, you can refer to their\n[Development Guide](https://scikit-learn.org/stable/developers/). A slight\ndifference is the use of Numba instead of Cython for optimization.\n\n### Documentation\n\nThe section below gives some information about the implemented algorithms in pyts.\nFor more information, please have a look at the\n[HTML documentation available via ReadTheDocs](https://pyts.readthedocs.io/).\n\n### Citation\n\nIf you use pyts in a scientific publication, we would appreciate\ncitations to the following [paper](http://www.jmlr.org/papers/v21/19-763.html):\n```\nJohann Faouzi and Hicham Janati. pyts: A python package for time series classification.\nJournal of Machine Learning Research, 21(46):1\u22126, 2020.\n```\n\nBibtex entry:\n```\n@article{JMLR:v21:19-763,\n  author  = {Johann Faouzi and Hicham Janati},\n  title   = {pyts: A Python Package for Time Series Classification},\n  journal = {Journal of Machine Learning Research},\n  year    = {2020},\n  volume  = {21},\n  number  = {46},\n  pages   = {1-6},\n  url     = {http://jmlr.org/papers/v21/19-763.html}\n}\n```\n\n### Implemented features\n\n**Note: the content described in this section corresponds to the main branch\n(i.e., the latest version), and not the latest released version. You may have to\ninstall the latest version to use some of these features.**\n\npyts consists of the following modules:\n\n- `approximation`: This module provides implementations of algorithms that\napproximate time series. Implemented algorithms are\n[Piecewise Aggregate Approximation](https://pyts.readthedocs.io/en/latest/generated/pyts.approximation.PiecewiseAggregateApproximation.html),\n[Symbolic Aggregate approXimation](https://pyts.readthedocs.io/en/latest/generated/pyts.approximation.SymbolicAggregateApproximation.html),\n[Discrete Fourier Transform](https://pyts.readthedocs.io/en/latest/generated/pyts.approximation.DiscreteFourierTransform.html),\n[Multiple Coefficient Binning](https://pyts.readthedocs.io/en/latest/generated/pyts.approximation.MultipleCoefficientBinning.html) and\n[Symbolic Fourier Approximation](https://pyts.readthedocs.io/en/latest/generated/pyts.approximation.SymbolicFourierApproximation.html).\n\n- `bag_of_words`: This module provide tools to transform time series into bags\nof words. Implemented algorithms are\n[WordExtractor](https://pyts.readthedocs.io/en/latest/generated/pyts.bag_of_words.WordExtractor.html) and\n[BagOfWords](https://pyts.readthedocs.io/en/latest/generated/pyts.bag_of_words.BagOfWords.html).\n\n\n- `classification`: This module provides implementations of algorithms that\ncan classify time series. Implemented algorithms are\n[KNeighborsClassifier](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.KNeighborsClassifier.html),\n[SAXVSM](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.SAXVSM.html),\n[BOSSVS](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.BOSSVS.html),\n[LearningShapelets](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.LearningShapelets.html),\n[TimeSeriesForest](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.TimeSeriesForest.html) and\n[TSBF](https://pyts.readthedocs.io/en/latest/generated/pyts.classification.TSBF.html).\n\n- `datasets`: This module provides utilities to make or load toy datasets,\nas well as fetching datasets from the\n[UEA & UCR Time Series Classification Repository](http://www.timeseriesclassification.com).\n\n- `decomposition`: This module provides implementations of algorithms that\ndecompose a time series into several time series. The only implemented\nalgorithm is\n[Singular Spectrum Analysis](https://pyts.readthedocs.io/en/latest/generated/pyts.decomposition.SingularSpectrumAnalysis.html).\n\n- `image`: This module provides implementations of algorithms that transform\ntime series into images. Implemented algorithms are\n[Recurrence Plot](https://pyts.readthedocs.io/en/latest/generated/pyts.image.RecurrencePlot.html),\n[Gramian Angular Field](https://pyts.readthedocs.io/en/latest/generated/pyts.image.GramianAngularField.html) and\n[Markov Transition Field](https://pyts.readthedocs.io/en/latest/generated/pyts.image.MarkovTransitionField.html).\n\n- `metrics`: This module provides implementations of metrics that are specific\nto time series. Implemented metrics are\n[Dynamic Time Warping](https://pyts.readthedocs.io/en/latest/generated/pyts.metrics.dtw.html)\nwith several variants and the\n[BOSS](https://pyts.readthedocs.io/en/latest/generated/pyts.metrics.boss.html)\nmetric.\n\n- `multivariate`: This modules provides utilities to deal with multivariate\ntime series. Available tools are\n[MultivariateTransformer](https://pyts.readthedocs.io/en/latest/generated/pyts.multivariate.transformation.MultivariateTransformer.html) and\n[MultivariateClassifier](https://pyts.readthedocs.io/en/latest/generated/pyts.multivariate.classification.MultivariateClassifier.html)\nto transform and classify multivariate time series using tools for univariate\ntime series respectively, as well as\n[JointRecurrencePlot](https://pyts.readthedocs.io/en/latest/generated/pyts.multivariate.image.JointRecurrencePlot.html) and\n[WEASEL+MUSE](https://pyts.readthedocs.io/en/latest/generated/pyts.multivariate.transformation.WEASELMUSE.html).\n\n- `preprocessing`: This module provides most of the scikit-learn preprocessing\ntools but applied sample-wise (i.e. to each time series independently) instead\nof feature-wise, as well as an\n[imputer](https://pyts.readthedocs.io/en/latest/generated/pyts.preprocessing.InterpolationImputer.html)\nof missing values using interpolation. More information is available at the\n[pyts.preprocessing API documentation](https://pyts.readthedocs.io/en/latest/api.html#module-pyts.preprocessing).\n\n- `transformation`: This module provides implementations of algorithms that\ntransform a data set of time series with shape `(n_samples, n_timestamps)` into\na data set with shape `(n_samples, n_extracted_features)`. Implemented algorithms are\n[BagOfPatterns](https://pyts.readthedocs.io/en/latest/generated/pyts.transformation.BagOfPatterns.html),\n[BOSS](https://pyts.readthedocs.io/en/latest/generated/pyts.transformation.BOSS.html),\n[ShapeletTransform](https://pyts.readthedocs.io/en/latest/generated/pyts.transformation.ShapeletTransform.html),\n[WEASEL](https://pyts.readthedocs.io/en/latest/generated/pyts.transformation.WEASEL.html) and\n[ROCKET](https://pyts.readthedocs.io/en/latest/generated/pyts.transformation.ROCKET.html).\n\n- `utils`: a simple module with\n[utility functions](https://pyts.readthedocs.io/en/latest/api.html#module-pyts.utils).\n\n## License\nThe contents of this repository is under a [BSD 3-Clause License](https://github.com/johannfaouzi/pyts/blob/main/LICENSE.txt).\n",
    "bugtrack_url": null,
    "license": "new BSD",
    "summary": "A python package for time series classification",
    "version": "0.13.0",
    "project_urls": {
        "Download": "https://github.com/johannfaouzi/pyts",
        "Homepage": "https://github.com/johannfaouzi/pyts"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b3e3da2042a20782b105631abe273ca5fef4390e7bdb6f5377c596891262437b",
                "md5": "defc0ad781fbe6804e684aaf862ab2ec",
                "sha256": "b49608267b686ea693dba31316ef2b22ad73ea29b27144696c347809ecd5ad62"
            },
            "downloads": -1,
            "filename": "pyts-0.13.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "defc0ad781fbe6804e684aaf862ab2ec",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 2546897,
            "upload_time": "2023-06-18T12:35:23",
            "upload_time_iso_8601": "2023-06-18T12:35:23.496239Z",
            "url": "https://files.pythonhosted.org/packages/b3/e3/da2042a20782b105631abe273ca5fef4390e7bdb6f5377c596891262437b/pyts-0.13.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "972eecb645d86e0e2d0b5d107b25a7e89e965f7e20befe0dfdcae26eeffe62c8",
                "md5": "c8c0306b30c6c3b1fe897f9fb77c7cec",
                "sha256": "aca0ecc315f4cc782be363f3b62384a24a02d23a5a7d549b839b2c40a7fbed02"
            },
            "downloads": -1,
            "filename": "pyts-0.13.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c8c0306b30c6c3b1fe897f9fb77c7cec",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 2448631,
            "upload_time": "2023-06-18T12:35:25",
            "upload_time_iso_8601": "2023-06-18T12:35:25.648150Z",
            "url": "https://files.pythonhosted.org/packages/97/2e/ecb645d86e0e2d0b5d107b25a7e89e965f7e20befe0dfdcae26eeffe62c8/pyts-0.13.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-18 12:35:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "johannfaouzi",
    "github_project": "pyts",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "pyts"
}
        
Elapsed time: 0.07655s