Skip to main content

scikit-learn compatible toolbox for learning with time series/panel data

Project description

travis appveyor pypi gitter binder

sktime

A scikit-learn compatible Python toolbox for learning with time series. sktime currently supports:

  • State-of-the-art time series classification and regression algorithms,

  • Classical forecasting including reduction strategies to regression,

  • Benchmarking and post-hoc evaluation methods based on mlaut.

For deep learning methods, we have a separate extension package: sktime-dl.

sktime is under active development and we are looking for contributors. You can find our development roadmap below.

Installation

The package is available via PyPI using:

pip install sktime

But note that the package is actively being developed and currently not feature stable.

Development version

To install the development version, please see our advanced installation instructions.

Documentation

  • Tutorials can be found in the examples folder or can be launched directly on Binder.

  • The full API documentation can be found here.

Overview

sktime extends the standard scikit-learn API to handle modular workflows for time series and panel data. The goal is to create a unified interface for various distinct but closely related learning tasks that arise in a temporal data context, such as time series classification or forecasting. To find our more, take a look at our paper.

Currently, the package implements:

  • Various state-of-the-art algorithms for time series classification and regression,

  • Transformers, including series-to-series transforms (e.g. Fourier transform), series-to-primitives transforms a.k.a. feature extractors (e.g. mean, variance), sub-divided into fittables (on table) and row-wise applicates,

  • Pipelining, allowing to chain multiple transformers with a final estimator,

  • Meta-estimators such as reduction strategies, grid-search tuners and ensembles, including ensembles for multivariate time series classification,

  • Composite strategies, such as a fully customisable random forest for time-series classification, with interval segmentation and feature extraction,

  • Classical forecasting algorithms and reduction strategies to solve forecasting tasks with time series regression algorithms.

In addition, sktime includes a high-level API that unifies multiple learning tasks, partially inspired by the APIs of mlr and openML. In particular, we introduce:

  • Task objects that encapsulate meta-data from a dataset and the necessary information about the particular learning task, e.g. the instructions on how to derive the target/labels for classification from the data,

  • Strategy objects that wrap estimators and allow to call fit and predict methods using data and a task object.

Development road map

  1. Development of a time series annotation framework, including segmentation and outlier detection,

  2. Integration of supervised/panel forecasting based on a modified pysf API,

  3. Unsupervised methods including time series clustering,

  4. Design and implementation of a specialised data container for efficient handling of time series/panel data in a modelling workflow and separation of time series meta-data,

  5. Development of a probabilistic modelling framework for time series, including survival and point process models based on an adapted skpro interface.

Contributions

We are actively looking for contributors. Please contact @fkiraly or @jasonlines for volunteering or information on paid opportunities, or simply chat with us or raise an issue.

Please also take a look at our Code of Conduct and contributing guidelines.

Former and current contributors to the API design and project management include:

  • API design: Anthony Bagnall, Sajaysurya Ganesh, Viktor Kazakov, Franz Király, Jason Lines, Markus Löning

  • Project management: Anthony Bagnall, Franz Király, Jason Lines, Markus Löning

How to cite sktime

If you use sktime in a scientific publication, we would appreciate citations to the following paper:

Bibtex entry:

@misc{sktime,
      author = {Markus Löning and Anthony Bagnall and Sajaysurya Ganesh and Viktor Kazakov
      and Jason Lines and Franz J. Király},
      title = {sktime: A Unified Interface for Machine Learning with Time Series},
      year = {2019},
      eprint = {arXiv:1909.07872},
}

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

sktime-0.3.1-cp37-cp37m-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.7m Windows x86-64

sktime-0.3.1-cp37-cp37m-manylinux1_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.7m

sktime-0.3.1-cp37-cp37m-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file sktime-0.3.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: sktime-0.3.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for sktime-0.3.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 e916b485346b30e719677addf9c8ee1bf415b5e543f75a7c2389302942c9f34d
MD5 f0955a63ef89592e40e7a59804795cf9
BLAKE2b-256 030c7ad6a31cf7a676f271ac46156dadc7737ab97f2f956c428d244c137919af

See more details on using hashes here.

File details

Details for the file sktime-0.3.1-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: sktime-0.3.1-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for sktime-0.3.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7e712198a61f69182c4654b11dd534e4b77b13e719425a48158ad0859a4b6da0
MD5 ff220b436967577e8129e65f9c81788c
BLAKE2b-256 ed467c2b60c019dc74adc2961cc8f359f22faa6630b541fd98d90c17d317457d

See more details on using hashes here.

File details

Details for the file sktime-0.3.1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: sktime-0.3.1-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for sktime-0.3.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1c4ac0f814e1cac220f62d4242a5ca6d095fb862b0059986577ab67494c6f7a2
MD5 dbb38c55e22c4d13a019585671f1b8ad
BLAKE2b-256 68f36271589e59618f0f1a1ae60c279d5bb943d0bbbe74968e97c3fbf9072533

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page