TimeSeriesClassification.jl

Time Series Classification algorithms in Julia - Bachelor thesis project
Author antoninkriz
Popularity
1 Star
Updated Last
1 Year Ago
Started In
February 2023

TimeSeriesClassification.jl

License: MIT CI codecov

Fast and optimized time series classification (TSC) toolkit for Julia and for MLJ.jl.

Models, datasets and tools

This package contains and supports following models, tools and datasets listed bellow.

Models

  • MiniRocket
  • k-Nearest Neighbors (kNN) with Dynamic Time Warping and support Lower Bounding functions

Datasets

Tools

  • Reader for sktime's ts File Format (currently supports only univariate classification datasets without timestamps)

Examples

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()

Performance

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.

Benchmarks

All benchmarks, plot generating tools and other scripts are located in the /benchmarks folder.

Tests

Open Julia REPL and execute following commands to run tests.

] activate .
] test

All tests are located in the /tests folder.

About this package

This package is a project created as a part of my bachelors thesis Time Series Classification in Julia (Czech language only).