This tutorial is about skchange and sktime sktime.
skchange
is a python compatible framework library for detecting anomalies, changepoints in time series, and segmentation.
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.
In the tutorial, we will move through notebooks section by section.
You have different options how to run the tutorial notebooks:
- Run the notebooks in the cloud on Binder - for this you don't have to install anything!
- Run the notebooks on your machine. Clone this repository, get conda, install the required packages (
sktime
,seaborn
,jupyter
) in an environment, and open the notebooks with that environment. For detail instructions, see below. For troubleshooting, see sktime's more detailed installation instructions. - or, use python venv, and/or an editable install of this repo as a package. Instructions below.
Please let us know on the sktime discord if you have any issues during the conference, or join to ask for help anytime.
The tutorial will give an introduction to the detection API in skchange and sktime, with a focus on unsupervised detection of anomalies and change points. The tutorial includes:
- An introduction to the different types of detection tasks for time series data: anomalies, changepoints, point/set/segment, un/supervised, stream, panel, uni/multivariate
skchange
andsktime
for anomaly, changepoint detection- cost and score functions for anomaly and changepoint detectors
- pipelines for anomaly and changepoint detection
skchange
is developed at Norsk Regnesentral.
Both skchange
and sktime
are developed by open communities, with aims of ecosystem integration in a neutral, charitable space. We welcome contributions and seek to provides opportunity for anyone worldwide.
We invite anyone to get involved as a developer, user, supporter (or any combination of these).
-
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!
To run the notebooks locally, you will need:
- a local repository clone
- a python environment with required packages installed
To clone the repository locally:
git clone https://github.com/sktime/sktime-tutorial-pydata-global-2024
- Create a python virtual environment:
conda create -y -n skchange_pydata python=3.11
- Install required packages:
conda install -y -n skchange_pydata pip skchange sktime seaborn jupyter pmdarima statsmodels
- Activate your environment:
conda activate skchange_pydata
- If using jupyter: make the environment available in jupyter:
python -m ipykernel install --user --name=skchange_pydata
- Create a python virtual environment:
python -m venv skchange_pydata
- Activate your environment:
source skchange_pydata/bin/activate
for Linux- skchange_pydata/Scripts/activate` for Windows
- Install the requirements:
pip install -r requirements
- If using jupyter: make the environment available in jupyter:
python -m ipykernel install --user --name=skchange_pydata