tsfel

An intuitive library to extract features from time series.

https://github.com/fraunhoferportugal/tsfel

Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.1%) to scientific vocabulary

Keywords

classification colab-notebook data-science feature-engineering feature-extraction time-series
Last synced: 6 months ago · JSON representation

Repository

An intuitive library to extract features from time series.

Basic Info
  • Host: GitHub
  • Owner: fraunhoferportugal
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: master
  • Homepage: https://tsfel.readthedocs.io
  • Size: 39.7 MB
Statistics
  • Stars: 1,035
  • Watchers: 18
  • Forks: 155
  • Open Issues: 4
  • Releases: 16
Topics
classification colab-notebook data-science feature-engineering feature-extraction time-series
Created about 7 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Authors

README.md

Documentation Status license PyPI - Python Version !pypi Downloads Open In Colab Slack

Time Series Feature Extraction Library

tsfel logo

Intuitive time series feature extraction

TSFEL is an open-source Python library for time series analysis. It centralizes a large and powerful feature set of several feature extraction methods from statistical, temporal, spectral, and fractal domains.

The documentation is available here.

You can install TSFEL via pip using the following:

python pip install tsfel

A release on conda-forge is coming soon.

Getting started

Below is a quick example of how to use TSFEL for time series feature extraction:

```python import tsfel

Loads a 10 s single lead ECG

data = tsfel.datasets.load_biopluxecg()

Set up the default configuration using using the statistical, temporal and spectral feature sets.

cfg = tsfel.getfeaturesby_domain()

Extract features

X = tsfel.timeseriesfeatures_extractor(cfg, data) ```

For a more detailed walk-through — including input/output data formats, extraction routine configuration, and how to implement your custom features — refer to the documentation here.

Highlights

  • Intuitive, fast deployment, and reproducible: Easily configure your feature extraction pipeline and store the configuration file to ensure reproducibility.
  • Computational complexity evaluation: Estimate the computational time required for feature extraction in advance.
  • Comprehensive documentation: Each feature extraction method is accompanied by a detailed explanation.
  • Unit tested: We provide an extensive suite of unit tests for each feature to ensure accurate and reliable feature calculation.
  • Easily extended: Adding new features is straightforward, and we encourage contributions of custom features to the community.

Available features

TSFEL automatically extracts more than 65 distinct features across statistical, temporal, spectral, and fractal domains.

Statistical domain

| Features | Computational Cost | |---------------------------|:------------------:| | Absolute energy | 1 | | Average power | 1 | | ECDF | 1 | | ECDF Percentile | 1 | | ECDF Percentile Count | 1 | | Entropy | 1 | | Histogram | 1 | | Interquartile range | 1 | | Kurtosis | 1 | | Max | 1 | | Mean | 1 | | Mean absolute deviation | 1 | | Median | 1 | | Median absolute deviation | 1 | | Min | 1 | | Root mean square | 1 | | Skewness | 1 | | Standard deviation | 1 | | Variance | 1 |

Temporal domain

| Features | Computational Cost | |-------------------------|:------------------:| | Area under the curve | 1 | | Autocorrelation | 2 | | Centroid | 1 | | Lempel-Ziv-Complexity* | 2 | | Mean absolute diff | 1 | | Mean diff | 1 | | Median absolute diff | 1 | | Median diff | 1 | | Negative turning points | 1 | | Peak to peak distance | 1 | | Positive turning points | 1 | | Signal distance | 1 | | Slope | 1 | | Sum absolute diff | 1 | | Zero crossing rate | 1 | | Neighbourhood peaks | 1 |

* Disabled by default due to its longer execution time compared to other features.

Spectral domain

| Features | Computational Cost | |----------------------------------|:------------------:| | FFT mean coefficient | 1 | | Fundamental frequency | 1 | | Human range energy | 1 | | LPCC | 1 | | MFCC | 1 | | Max power spectrum | 1 | | Maximum frequency | 1 | | Median frequency | 1 | | Power bandwidth | 1 | | Spectral centroid | 2 | | Spectral decrease | 1 | | Spectral distance | 1 | | Spectral entropy | 1 | | Spectral kurtosis | 2 | | Spectral positive turning points | 1 | | Spectral roll-off | 1 | | Spectral roll-on | 1 | | Spectral skewness | 2 | | Spectral slope | 1 | | Spectral spread | 2 | | Spectral variation | 1 | | Wavelet absolute mean | 2 | | Wavelet energy | 2 | | Wavelet standard deviation | 2 | | Wavelet entropy | 2 | | Wavelet variance | 2 |

Fractal domain

| Features | Computational Cost | |--------------------------------------|:------------------:| | Detrended fluctuation analysis (DFA) | 3 | | Higuchi fractal dimension | 3 | | Hurst exponent | 3 | | Maximum fractal length | 3 | | Multiscale entropy (MSE) | 1 | | Petrosian fractal dimension | 1 |

Fractal domain features are typically applied to relatively longer signals to capture meaningful patterns, and it's usually unnecessary to previously divide the signal into shorter windows. Therefore, this domain is disabled in the default feature configuration files.

Support & General discussion

For bug reports, please use the GitHub issue tracker. To make feature requests, share ideas, engage in general discussions, or receive announcements, you're welcome to join our Slack community.

Citing

If you use TSFEL in your work, please cite the following publication:

Barandas, Marília and Folgado, Duarte, et al. "TSFEL: Time Series Feature Extraction Library." SoftwareX 11 ( 2020). https://doi.org/10.1016/j.softx.2020.100456

Acknowledgements

We gratefully acknowledge the financial support received from the Center for Responsible AI and the Total Integrated and Predictive Manufacturing System Platform for Industry 4.0 projects.

Owner

  • Name: Associação Fraunhofer Portugal Research
  • Login: fraunhoferportugal
  • Kind: organization
  • Location: Porto, Portugal

Associação Fraunhofer Portugal Research

GitHub Events

Total
  • Issues event: 17
  • Watch event: 105
  • Issue comment event: 12
  • Push event: 4
  • Pull request review event: 1
  • Pull request event: 1
  • Fork event: 9
Last Year
  • Issues event: 17
  • Watch event: 105
  • Issue comment event: 12
  • Push event: 4
  • Pull request review event: 1
  • Pull request event: 1
  • Fork event: 9

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 219
  • Total Committers: 21
  • Avg Commits per committer: 10.429
  • Development Distribution Score (DDS): 0.717
Top Committers
Name Email Commits
marilia.barandas m****s@f****t 62
Letícia Fernandes l****s@f****t 43
Duarte Folgado d****o@f****t 25
Duarte Folgado d****o@u****m 19
dmfolgado d****o@g****m 17
Sara Santos s****s@S****l 12
Letícia Fernandes l****s@c****t 10
Sara Santos s****s@c****t 6
lmfernandes96 4****6@u****m 5
sara.santos D****a 4
Sara Santos s****s@S****n 3
tecamenz m****d@p****h 2
Maria Nunes m****s@f****t 2
Matt Chan 4****n@u****m 2
Farid Abdalla f****3@g****m 1
Maria Lua Nunes 7****s@u****m 1
Guillaume Jacquenot G****t@u****m 1
Sara Santos s****s@f****t 1
Maria Antunes m****s@a****t 1
Steven Luscher s****r@u****m 1
Atick Faisal a****l@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 83
  • Total pull requests: 57
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 60
  • Total pull request authors: 19
  • Average comments per issue: 2.19
  • Average comments per pull request: 0.18
  • Merged pull requests: 46
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 12
  • Pull requests: 3
  • Average time to close issues: 10 days
  • Average time to close pull requests: about 23 hours
  • Issue authors: 8
  • Pull request authors: 3
  • Average comments per issue: 0.58
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • dmfolgado (12)
  • markNZed (5)
  • Huii (3)
  • IrenXu (2)
  • b-y-f (2)
  • mmarcato (2)
  • GniLudio (2)
  • jpalma-espinosa (2)
  • patrickfleith (2)
  • hasanfarooq7 (2)
  • senovr (2)
  • sanbuddhacharyas (1)
  • zygisjas (1)
  • ciberger (1)
  • Maarten-Schoolmeesters (1)
Pull Request Authors
  • lmfernandes96 (15)
  • isabelcurioso (13)
  • smlsantos (7)
  • mbarandas (6)
  • MargaridaAntunes (5)
  • mluacnunes (4)
  • dmfolgado (4)
  • dependabot[bot] (4)
  • Saniamos (3)
  • Laxnring (1)
  • ghost (1)
  • DavidHappelIP (1)
  • Gjacquenot (1)
  • Roneival (1)
  • steveluscher (1)
Top Labels
Issue Labels
enhancement (14) question (12) bug (12) help wanted (10) documentation (5) good first issue (1)
Pull Request Labels
enhancement (9) bug (9) dependencies (4)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 9,944 last-month
  • Total dependent packages: 3
  • Total dependent repositories: 10
  • Total versions: 12
  • Total maintainers: 3
pypi.org: tsfel

Library for time series feature extraction

  • Versions: 12
  • Dependent Packages: 3
  • Dependent Repositories: 10
  • Downloads: 9,944 Last month
  • Docker Downloads: 0
Rankings
Downloads: 2.0%
Stargazers count: 2.3%
Average: 3.8%
Forks count: 4.2%
Dependent repos count: 4.6%
Docker downloads count: 4.6%
Dependent packages count: 4.8%
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • Sphinx >=1.8.5
  • gspread >=3.1.0
  • ipython >=7.4.0
  • numpy >=1.18.5
  • oauth2client >=4.1.3
  • pandas >=0.25.3
  • scipy >=1.5.1
  • setuptools >=47.1.1