This tutorial is about skchange and sktime.
skchange
is a python library for fast change and anomaly detection in time series.
skchange
is based on, and extends, sktime
, the most widely used scikit-learn compatible framework library for learning with time series.
Both packages are maintained under permissive license, easily extensible by anyone, and interoperable with the python data science stack. This workshop gives a hands-on introduction to the new joint detection interface developed in skchange and sktime, for detecting point anomalies, changepoints, and segment anomalies.
The tutorial will give an introduction to the detection API in skchange and sktime, with a focus on unsupervised detection of segment anomalies and change points. The tutorial includes:
-
An introduction to the different types of detection tasks for time series data:
- Change detection
- Segmentation
- Point anomaly detection
- Segment anomaly detection
- Subset anomaly detection for multivariate data
-
How to use
skchange
andsktime
for these tasks -
Cost and score functions for anomaly and changepoint detectors
We invite anyone to get involved as a developer, user or supporter.
Here's how to run the notebooks locally using python virtual environment and VSCode. This tutorial has only been tested on Windows using Python 3.12.9. Apologies if some details are missing for other setups.
git clone https://github.com/NorskRegnesentral/skchange-tutorial-hydro
Click Open folder
in VSCode and select the cloned repository.
python -m venv .venv
Linux
source .venv/bin/activate
Windows
.venv/Scripts/activate
pip install -r requirements.txt
-
Open the notebooks folder.
-
Run through the notebooks and cells in order.
- When VSCode asks if you want to activate the
.venv
environment for Jupyter, click "Yes". - If you are not prompted to activate the
.venv
environment, you can select it manually by clicking on the kernel button in the top right corner of the notebook. You may have to reload the window for the.venv
environment to appear.
- When VSCode asks if you want to activate the
-
Pydata Global 2024 - Anomaly detection, change detection and segmentation
-
EuroSciPy 2024 - Hierarchical, global forecasting, foundation models, extensions and marketplace
-
Pydata Global 2023 - General sktime introduction, new features 2023
-
Europython 2023 - General sktime introduction, half-day workshop
-
PyCon Prague 2023 - Forecasting, Advanced Pipelines, Benchmarking
-
Pydata Amsterdam 2023 - Probabilistic prediction, forecasting, evaluation
-
ODSC Europe 2023 - Forecasting, Pipelines, and ML Engineering
-
Pydata London 2023 - Time Series Classification, Regression, Distances & Kernels
-
Pydata London 2022 - How to implement your own estimator in sktime
If you're interested in contributing to skchange
or sktime
,
you can find out more how to get involved here.
Any contributions are welcome, not just code!