catch22 - CAnonical Time-series CHaracteristics
About
catch22 is a collection of 22 time-series features coded in C that can be run from Python, R, Matlab, and Julia. The catch22 features are a high-performing subset of the over 7000 features in hctsa.
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:
But what do the features do? You can learn more about what each feature does, with visualizations of how the features behave on real data, here.
The computational pipeline used to generate the catch22 feature set is in the op_importance
repository.
For catch22-related information and resources, including a list of publications using catch22, see the catch22 wiki.
Summary of the performance of the catch22 feature set across 93 classification problems, and a comparison to the hctsa feature set (cf. Fig. 4 from our paper):
Installation: Python, R, Matlab, Julia, and compiled C
The fast, C-coded functions in this repository can be used in Python, Matlab, and R following the detailed installation instructions on the wiki.
There is also a native R version, downloadable from CRAN, Rcatch22.
And Julia users can use this Julia package to evaluate the catch22 feature set.
Usage
- See language-specific usage information in the wiki.
- Important Note: 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 you think features of the raw distribution may be important for your application, we suggest you add them (in the simplest case, two additional features: the mean and standard deviation) to this feature set.
- Note that time series are z-scored internally which means e.g., constant time series will lead to
NaN
outputs.