/sktime-dl

sktime companion package for deep learning based on TensorFlow

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

NOTE: sktime-dl is currenlty being updated to work correctly with sktime 0.6, and wwill be fully relaunched over the summer. The plan is

  1. Update it to be compliant with sktime 0.6 (currently works with sktime 0.4)
  2. Update classifiers (documentation etc)
  3. Import pytorch, add a pytorch classifier
  4. Add a forecasting module
  5. Review literature on the latest dl classifiers, assimilate and evaluate any worth including
  6. Update devops so it exactly mirror sktime

travis pypi gitter binder

sktime-dl

An extension package for deep learning with Tensorflow/Keras for sktime, a scikit-learn compatible Python toolbox for learning with time series and panel data.

sktime-dl is under development and currently in a state of flux.

Overview

A repository for off-the-shelf networks

The aim is to define Keras networks able to be directly used within sktime and its pipelining and strategy tools, and by extension scikit-learn, for use in applications and research. Over time, we wish to interface or implement a wide range of networks from the literature in the context of time series analysis.

Classification

Currently, we interface with a number of networks for time series classification in particular. A large part of the current toolset serves as an interface to dl-4-tsc, and implements the following network architectures:

  • Time convolutional neural network (CNN)
  • Encoder (Encoder)
  • Fully convolutional neural network (FCNN)
  • Multi channel deep convolutional neural network (MCDCNN)
  • Multi-scale convolutional neural network (MCNN)
  • Multi layer perceptron (MLP)
  • Residual network (ResNet)
  • Time Le-Net (TLeNet)
  • Time warping invariant echo state network (TWIESN)

We also interface with InceptionTime, as of writing the strongest deep learning approach to general time series classification.

  • Inception network, singular.

Regression

Most of the classifier architectures have been adapted to also provide regressors. These are:

  • Time convolutional neural network (CNN)
  • Encoder (Encoder)
  • Fully convolutional neural network (FCNN)
  • Multi layer perceptron (MLP)
  • Residual network (ResNet)
  • Time Le-Net (TLeNet)
  • InceptionTime (Inception)

Forecasting

The regression networks can also be used to perform time series forecasting via sktime's reduction strategies.

We aim to incorporate bespoke forecasting networks in future updates, both specific architectures and general RNNs/LSTMs.

Meta-functionality

  • Hyper-parameter tuning (through calls to sci-kit learn's Grid and RandomizedSearch tools, currently)
  • Ensembling methods (over different random initialisations for stability)

These act as wrappers to networks, and can be used in high-level and experimental pipelines as with any sktime model.

Documentation

sktime-dl is an extension package to sktime, primarily introducing different learning algorithms. All examples and documentation on higher level funtionality and usage from the base sktime apply to this package.

Documentation specifically for sktime-dl shall be produced in due course.

Example notebooks for sktime-dl usage can be found under the examples folder.

Contributors

Former and current active contributors are as follows:

James Large (@James-Large, @jammylarge, james.large@uea.ac.uk), Aaron Bostrom (@ABostrom), Hassan Ismail Fawaz (@hfawaz), Markus Löning (@mloning), @Withington