This repository contains materials for a hands-on workshop on sktime, a unified Python framework for machine learning with time series.
The workshop materials are intended to be run as Jupyter notebooks. The exact notebook list may change over time; start with the notebooks in notebooks/ and follow the order suggested by the file names or by the workshop instructor.
The notebooks give a practical introduction to time series machine learning with sktime, with material that can be adapted for different workshop lengths. The current flow is:
| Notebook | What it covers |
|---|---|
00_introduction.ipynb |
Introduces sktime, the scikit-learn-style estimator interface, core time series learning tasks, simple forecasting/classification examples, and how sktime connects to the wider Python time series ecosystem. |
01_forecasting.ipynb |
Walks through forecasting workflows, including quickstart forecasting, univariate forecasting, regression reduction, exogenous variables, multivariate forecasting, probabilistic forecasting, and hierarchical forecasting. |
02_advanced_forecasting.ipynb |
Covers advanced forecasting patterns, including trend handling for tree-based models, sktime forecasting pipelines, imputation, seasonality, feature engineering, WindowSummarizer, tuning, AutoML-style forecaster selection, and nested cross-validation. |
03_deep_learning.ipynb |
Introduces deep-learning-based forecasting on monthly data, architecture concepts, sktime deep learning estimators, PyTorch Forecasting usage, feed-forward models, training diagnostics, and pretraining in sktime. |
04_foundation_models.ipynb |
Focuses on foundation models for forecasting, including what foundation models are, TinyTimeMixer, TimesFM, sktime-compatible APIs, hierarchical and probabilistic forecasting, legal considerations, and when foundation models are useful. |
05_autoresearch.ipynb |
Demonstrates AutoResearchForecaster, framing forecasting as blueprint search with LLM-assisted model selection, craft()-based blueprint generation, monthly tourism forecasting, search traces, ranked blueprints, and baseline checks. |
06_sktime_mcp.ipynb |
Demonstrates conversational time series workflows with sktime-mcp, including MCP setup, client connection, tool options, registry discovery, retail forecasting, messy business data, and time series classification examples. |
07_outro.ipynb |
Summarizes the workshop, points to next steps, and explains how to get involved with the sktime community. |
Some LLM-assisted sections may require provider credentials configured in your local environment, depending on the models or services used during the workshop.
- Python 3.13
- A local clone of this repository
- A Python environment with the workshop dependencies installed
- Jupyter Lab, Jupyter Notebook, or another notebook environment using the same Python environment
If you are new to Python environments, uv is usually the shortest setup path. pip, venv, conda, or Poetry are also fine if you already use them.
The canonical dependency list is in pyproject.toml. requirements.txt mirrors the same workshop dependencies for users who prefer a pip requirements file.
From the repository root:
uv sync --python 3.13
uv run jupyter labThen open the notebooks in notebooks/.
If uv is not installed, see the uv installation guide.
From the repository root:
python3.13 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m jupyter labOn Windows, activate the environment with:
.venv\Scripts\activateconda create -n sktime-workshop python=3.13
conda activate sktime-workshop
python -m pip install -r requirements.txt
python -m jupyter labUse Poetry 2.0 or newer.
poetry env use 3.13
poetry install
poetry run jupyter labOpen the repository in Jupyter Lab and select the kernel for the environment where you installed the dependencies. If the environment does not appear as a kernel, register it explicitly:
python -m ipykernel install --user --name sktime-workshop --display-name "sktime workshop"Restart the notebook kernel after changing dependencies or switching environments.
- If a package cannot be imported, check that Jupyter is using the same Python environment where the dependencies were installed.
- If installing optional or heavy dependencies takes a long time, set up the environment before the workshop.
- If you are on macOS with Apple Silicon and an optional dependency fails to install, use the core workshop environment first and install optional packages only when they are needed.
- For general sktime installation notes, see the sktime installation guide.
sktime provides scikit-learn compatible tools for time series learning tasks such as forecasting, classification, regression, clustering, annotation, and pipeline composition. See the sktime website, documentation, and GitHub repository for more.
Community links are available from the sktime get involved page.
Similar workshop and tutorial repositories, sorted with the most recent first:
- Python Brasil 2025 - sktime workshop materials
- PyCon Colombia 2025 - sktime workshop
- HAICON Prologue Day 2025 - sktime tutorial materials
- PyData Global 2024 - sktime tutorial
- ODSC Europe 2024 - sktime tutorial
- PyCon PL 2024 - sktime workshop
- EuroSciPy 2024 - hierarchical and global forecasting, foundation models, extensions, and marketplace
- SciPy 2024 - sktime workshop
- PyData Global 2023 - general sktime introduction and new features
- PyData Amsterdam 2023 - probabilistic prediction, forecasting, and evaluation
- PyData Prague 2023 - forecasting, advanced pipelines, and benchmarking
- EuroPython 2023 - general sktime introduction
- ODSC Europe 2023 - forecasting, pipelines, and ML engineering
- PyData London 2023 - time series classification, regression, distances, and kernels
- PyData Global 2022 - feature extraction, pipelines, and tuning
- PyData London 2022 - sktime workshop
Contributions to workshop materials are welcome. If you find an issue, please open a GitHub issue or pull request in this repository. For contributions to sktime itself, see the sktime contribution guide.