Skip to content

FLUSS

FLUSS segments a completed one-dimensional signal using matrix-profile nearest-neighbor arcs. Regime boundaries tend to have fewer arcs crossing them, which produces peaks in the returned 1 - corrected_arc_curve score.

Parameters

window_length : int
Subsequence length used by the matrix profile. Choose it near the shortest recurring pattern that should define a regime.

Methods

transform(time_series)

time_series : numpy.ndarray, shape (n_samples,)
Complete one-dimensional signal.

Returns

score : numpy.ndarray, shape (n_samples - window_length + 1,)
Inverted corrected arc curve. Larger values indicate candidate regime boundaries.

Minimal Example

import numpy as np
from changepoynt.algorithms.fluss import FLUSS

signal = np.r_[np.sin(np.linspace(0, 8 * np.pi, 200)),
               np.sin(np.linspace(0, 24 * np.pi, 200))]
score = FLUSS(window_length=30).transform(signal)

Reference: Gharghabi et al., Matrix Profile VIII.