Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/DynamicsAndNeuralSystems/catch22
catch22: CAnonical Time-series CHaracteristics
https://github.com/DynamicsAndNeuralSystems/catch22
feature-extraction time-series time-series-analysis
Last synced: about 1 month ago
JSON representation
catch22: CAnonical Time-series CHaracteristics
- Host: GitHub
- URL: https://github.com/DynamicsAndNeuralSystems/catch22
- Owner: DynamicsAndNeuralSystems
- License: gpl-3.0
- Created: 2018-08-26T15:57:14.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T23:06:47.000Z (about 1 month ago)
- Last Synced: 2024-10-30T01:47:37.515Z (about 1 month ago)
- Topics: feature-extraction, time-series, time-series-analysis
- Language: C
- Homepage: https://time-series-features.gitbook.io/catch22
- Size: 44.8 MB
- Stars: 364
- Watchers: 9
- Forks: 69
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-time-series - catch22 - series CHaracteristics, 22 high-performing time-series features in C, Python and Julia. (📦 Packages / Python)
README
catch22: CAnonical Time-series CHaracteristics_catch22_ is a collection of 22 time-series features coded in C that can be run from Python, R, Matlab, and Julia, licensed under the [GNU GPL v3 license](http://www.gnu.org/licenses/gpl-3.0.html) (or later).
The _catch22_ features are a high-performing subset of the over 7000 features in [_hctsa_](https://github.com/benfulcher/hctsa).The features were selected based on their classification performance across a collection of 93 real-world time-series classification problems, as described in our open-access paper, [📗 Lubba et al. (2019). _catch22_: CAnonical Time-series CHaracteristics](https://doi.org/10.1007/s10618-019-00647-x).
## [📙📘📗___catch22_ documentation__](https://time-series-features.gitbook.io/catch22/)
There is [comprehensive documentation](https://time-series-features.gitbook.io/catch22/) for _catch22_, including:
- Installation instructions (across C, python, R, Julia, and Matlab)
- Information about the theory behind and behavior of each of the features,
- A list of publications that have used or extended _catch22_
- And more :yum:## Installation and Usage in Python, R, Matlab, Julia, and compiled C
There are also native versions of this code for other programming languages:
- [Rcatch22](https://github.com/hendersontrent/Rcatch22) (R) `install.packages("Rcatch22")`
- [pycatch22](https://github.com/DynamicsAndNeuralSystems/pycatch22) (python) `pip install pycatch22`
- [Catch22.jl](https://github.com/brendanjohnharris/Catch22.jl) (Julia) `Pkg.add("Catch22")`You can also use the C-compiled features directly, or in Matlab, following the [detailed installation instructions on the wiki](https://time-series-features.gitbook.io/catch22/matlab#installation).
## Acknowledgement :+1:
If you use this software, please read and cite this open-access article:
- 📗 Lubba et al. [_catch22_: CAnonical Time-series CHaracteristics](https://doi.org/10.1007/s10618-019-00647-x), _Data Min Knowl Disc_ __33__, 1821 (2019).
## Performance Summary
Summary of the performance of the _catch22_ feature set across 93 classification problems, and a comparison to the [_hctsa_ feature set](https://github.com/benfulcher/hctsa) (cf. Fig. 4 from [our paper](https://doi.org/10.1007/s10618-019-00647-x)):
![](img/PerformanceComparisonFig4.png)
## Notes
- When presenting results using _catch22_, you must identify the version used to allow clear reproduction of your results. For example, `CO_f1ecac` was altered from an integer-valued output to a linearly interpolated real-valued output from v0.3.
- _catch22_ features only evaluate _dynamical_ properties of time series and do not respond to basic differences in the location (e.g., mean) or spread (e.g., variance).
- If the location and spread of the raw time-series distribution may be important for your application, you should apply the function argument `catch24 = true` (`TRUE` in R, `True` in Python) to your call to the _catch22_ function in the language of your choice. This will result in 24 features being calculated: the _catch22_ features in addition to mean and standard deviation.
- Time series are _z_-scored internally (for features other than mean and standard deviation), which means that, e.g., constant time series will lead to `NaN` outputs.
- Time-series data are taken as an ordered sequence of values (without time stamps). We assume an evenly sampled time series.
- See language-specific usage information in the [wiki](https://time-series-features.gitbook.io/catch22/matlab#getting-started-basic-usage).
- The computational pipeline used to generate the _catch22_ feature set is in the [`op_importance`](https://github.com/chlubba/op_importance) repository.