Fast and optimized time series classification (TSC) toolkit for Julia and for MLJ.jl.
This package contains and supports following models, tools and datasets listed bellow.
- MiniRocket
- k-Nearest Neighbors (kNN) with Dynamic Time Warping and support Lower Bounding functions
- Dynamic Time Warping
- DTW (without any search space limitations)
- DTW with Sakoe-Chiba band
- DTW with Itakura parallelogram
- Your own function
- Lower Bounding
- None (without any lower bounding)
- LB_Keogh
- Your own function
- Dynamic Time Warping
- UCR Archive of 128 univariate time series datasets
- Reader for sktime's
ts
File Format (currently supports only univariate classification datasets without timestamps)
Examples created with Pluto.jl can be found in the /examples
folder.
Open the /examples
folder, start Julia REPL, execute the following commands and open one of the example notebooks.
] activate .
> import Pluto; Pluto.run()
Benchmarks were done on 113 datasets from the UCR Time Series Archive.
When compared to sktime (a Python package for machine learning with time series, optimized using Numba and based on scikit-learn) the MiniRocket implementation in Julia was 8.5 times faster and KNN was 17.8 faster.
Tests were done on Intel Core i7-11700 8c/16t @ 2.5 GHz with DDR4 RAM of 32 GB @ 3600 MHz, CL17.
All benchmarks, plot generating tools and other scripts are located in the /benchmarks
folder.
Open Julia REPL and execute following commands to run tests.
] activate .
] test
All tests are located in the /tests
folder.
This package is a project created as a part of my bachelors thesis Time Series Classification in Julia (Czech language only).