All Projects → angus924 → Rocket

angus924 / Rocket

Licence: gpl-3.0
ROCKET: Exceptionally fast and accurate time series classification using random convolutional kernels

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Rocket

minirocket
MINIROCKET: A Very Fast (Almost) Deterministic Transform for Time Series Classification
Stars: ✭ 166 (+1.84%)
Mutual labels:  scalable, convolution
Randomatic
Easily generate random strings like passwords, with simple options for specifying a length and for using patterns of numeric, alpha-numeric, alphabetical, special or custom characters. (the original "generate-password")
Stars: ✭ 149 (-8.59%)
Mutual labels:  random
Randomkit
Random data generation in Swift
Stars: ✭ 1,458 (+794.48%)
Mutual labels:  random
Jamesdspmanager
Audio DSP effects build on Android system framework layer. This is a repository contains a pack of high quality DSP algorithms specialized for audio processing.
Stars: ✭ 136 (-16.56%)
Mutual labels:  convolution
Random Image
随机图片服务
Stars: ✭ 118 (-27.61%)
Mutual labels:  random
Gofakeit
Random fake data generator written in go
Stars: ✭ 2,193 (+1245.4%)
Mutual labels:  random
Hyperapp Fx
Effects for use with Hyperapp
Stars: ✭ 105 (-35.58%)
Mutual labels:  random
Randomdata
Random data generator
Stars: ✭ 157 (-3.68%)
Mutual labels:  random
Jnanoid
A unique string ID generator for Java.
Stars: ✭ 147 (-9.82%)
Mutual labels:  random
Libchaos
Advanced library for randomization, hashing and statistical analysis (devoted to chaos machines). 🔬
Stars: ✭ 1,619 (+893.25%)
Mutual labels:  random
Baba Core
Mini-language for creating random text generators.
Stars: ✭ 127 (-22.09%)
Mutual labels:  random
Fastrand
Fast and scalable pseudorandom generator for Go
Stars: ✭ 122 (-25.15%)
Mutual labels:  scalable
Generatedata
A powerful, feature-rich, random test data generator.
Stars: ✭ 1,883 (+1055.21%)
Mutual labels:  random
Fakedata
Haskell Library for producing quality fake data
Stars: ✭ 118 (-27.61%)
Mutual labels:  random
Pyeco
python implementation of efficient convolution operators for tracking
Stars: ✭ 150 (-7.98%)
Mutual labels:  convolution
Rando Php
RandoPhp is a open source library that implements random generators (Integer, Char, Byte, Sequences, Boolean) and take random sample from arrays
Stars: ✭ 107 (-34.36%)
Mutual labels:  random
Stochasticdiffeq.jl
Solvers for stochastic differential equations which connect with the scientific machine learning (SciML) ecosystem
Stars: ✭ 128 (-21.47%)
Mutual labels:  random
Psconv
[ECCV 2020] PSConv: Squeezing Feature Pyramid into One Compact Poly-Scale Convolutional Layer
Stars: ✭ 138 (-15.34%)
Mutual labels:  convolution
Goupaz.com
Community driven open source accelerator
Stars: ✭ 163 (+0%)
Mutual labels:  scalable
Sparse Winograd Cnn
Efficient Sparse-Winograd Convolutional Neural Networks (ICLR 2018)
Stars: ✭ 156 (-4.29%)
Mutual labels:  convolution

ROCKET + MINIROCKET

ROCKET: Exceptionally fast and accurate time series classification using random convolutional kernels.

Data Mining and Knowledge Discovery / arXiv:1910.13051 (preprint)

Most methods for time series classification that attain state-of-the-art accuracy have high computational complexity, requiring significant training time even for smaller datasets, and are intractable for larger datasets. Additionally, many existing methods focus on a single type of feature such as shape or frequency. Building on the recent success of convolutional neural networks for time series classification, we show that simple linear classifiers using random convolutional kernels achieve state-of-the-art accuracy with a fraction of the computational expense of existing methods. Using this method, it is possible to train and test a classifier on all 85 ‘bake off’ datasets in the UCR archive in < 2 h, and it is possible to train a classifier on a large dataset of more than one million time series in approximately 1 h.

Please cite as:

@article{dempster_etal_2020,
  author = {Dempster, Angus and Petitjean, Fran\c{c}ois and Webb, Geoffrey I},
  title = {ROCKET: Exceptionally fast and accurate time classification using random convolutional kernels},
  year = {2020},
  journal = {Data Mining and Knowledge Discovery},
  doi = {https://doi.org/10.1007/s10618-020-00701-z}
}

sktime

An implementation of ROCKET (with basic multivariate capability) is available through sktime. See the examples.

MINIROCKET *NEW*

MINIROCKET is up to 75× faster than ROCKET on larger datasets.

Results

UCR Archive

Scalability

Code

rocket_functions.py

Requirements

  • Python;
  • Numba;
  • NumPy;
  • scikit-learn (or equivalent).

Example

from rocket_functions import generate_kernels, apply_kernels
from sklearn.linear_model import RidgeClassifierCV

[...] # load data, etc.

# generate random kernels
kernels = generate_kernels(X_training.shape[-1], 10_000)

# transform training set and train classifier
X_training_transform = apply_kernels(X_training, kernels)
classifier = RidgeClassifierCV(alphas = np.logspace(-3, 3, 10), normalize = True)
classifier.fit(X_training_transform, Y_training)

# transform test set and predict
X_test_transform = apply_kernels(X_test, kernels)
predictions = classifier.predict(X_test_transform)

Reproducing the Experiments

reproduce_experiments_ucr.py

Arguments:
-d --dataset_names : txt file of dataset names
-i --input_path    : parent directory for datasets
-o --output_path   : path for results
-n --num_runs      : number of runs (optional, default 10)
-k --num_kernels   : number of kernels (optional, default 10,000)

Examples:
> python reproduce_experiments_ucr.py -d bakeoff.txt -i ./Univariate_arff -o ./
> python reproduce_experiments_ucr.py -d additional.txt -i ./Univariate_arff -o ./ -n 1 -k 1000

reproduce_experiments_scalability.py

Arguments:
-tr --training_path : training dataset (csv)
-te --test_path     : test dataset (csv)
-o  --output_path   : path for results
-k  --num_kernels   : number of kernels

Examples:
> python reproduce_experiments_scalability.py -tr training.csv -te test.csv -o ./ -k 100
> python reproduce_experiments_scalability.py -tr training.csv -te test.csv -o ./ -k 1000

Acknowledgements

We thank Professor Eamonn Keogh and all the people who have contributed to the UCR time series classification archive. Figures in our paper showing the ranking of different classifiers and variants of ROCKET were produced using code from Ismail Fawaz et al. (2019).

🚀
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].