A unified framework for machine learning with time series
We provide specialized time series algorithms and scikit-learn compatible tools to build, tune and validate time series models for multiple learning problems, including:
- Forecasting,
- Time series classification,
- Time series regression.
For deep learning, see our companion package: sktime-dl.
CI | |
Docs | |
Community | |
Code |
The package is available via PyPI using:
pip install sktime
Alternatively, you can install it via conda:
conda install -c conda-forge sktime
The package is actively being developed and some features may not be stable yet.
To install the development version, please see our advanced installation instructions.
from sktime.forecasting.all import *
y = load_airline()
y_train, y_test = temporal_train_test_split(y)
fh = ForecastingHorizon(y_test.index, is_relative=False)
forecaster = ThetaForecaster(sp=12) # monthly seasonal periodicity
forecaster.fit(y_train)
y_pred = forecaster.predict(fh)
smape_loss(y_test, y_pred)
>>> 0.08661468139978168
For more, check out the forecasting tutorial.
from sktime.classification.all import *
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
X, y = load_arrow_head(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y)
classifier = TimeSeriesForest()
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
accuracy_score(y_test, y_pred)
>>> 0.8679245283018868
For more, check out the time series classification tutorial.
- PyData Amsterdam 2020 tutorial: [video], [notebooks]
- Tutorial notebooks - you can run them on Binder without having to install anything!
- User guide
- API reference
We follow the all-contributors specification - and all kinds of contributions are welcome!
- Contributing guide
- Enhancement proposals (design discussions)
If you have a question, chat with us or raise an issue. Your help and feedback is extremely welcome!
- Multivariate/panel forecasting,
- Time series clustering,
- Time series annotation (segmentation and anomaly detection),
- Probabilistic time series modelling, including survival and point processes.
Read our detailed roadmap here.
If you use sktime in a scientific publication, we would appreciate citations to the following paper:
Bibtex entry:
@inproceedings{sktime,
author = {L{\"{o}}ning, Markus and Bagnall, Anthony and Ganesh, Sajaysurya and Kazakov, Viktor and Lines, Jason and Kir{\'{a}}ly, Franz J},
booktitle = {Workshop on Systems for ML at NeurIPS 2019},
title = {{sktime: A Unified Interface for Machine Learning with Time Series}},
date = {2019},
}