skchange
provies sktime-compatible change detection and changepoint-based anomaly detection algorithms. Methods implement the annotator interface of sktime.
A playground for now.
from skchange.change_detectors.moscore import Moscore
from skchange.datasets.generate import generate_teeth_data
df = generate_teeth_data(n_segments=10, segment_length=50, mean=5, random_state=1)
detector = Moscore(bandwidth=10, fmt="sparse")
detector.fit_predict(df)
>>>
0 49
1 99
2 149
3 199
4 249
5 299
6 349
7 399
8 449
Name: changepoints, dtype: int32
from skchange.anomaly_detectors.mvcapa import Mvcapa
from skchange.datasets.generate import generate_teeth_data
df = generate_teeth_data(
n_segments=5,
segment_length=50,
p=10,
mean=10,
affected_proportion=0.2,
random_state=2,
)
detector = Mvcapa(collective_penalty="sparse", fmt="sparse")
detector.fit_predict(df)
>>>
start end components
0 50 99 [0, 1]
1 150 199 [0, 1]
pip install git+https://github.com/NorskRegnesentral/skchange
pandas
>= 1.3numpy
>= 1.19numba
>= 0.56sktime
>= 0.24
You also need Python >= 3.8.
skchange
is a free and open-source software licensed under the BSD 3-clause license.