#2868·sktime

[ENH] Fast Low-cost Unipotent Semantic Segmentation (FLUSS)

Author: NoaWegerhoffCreated Jun 26, 2022Updated Sep 18, 2026
Labelsgood first issuemodule:detectionenhancement

Description

FLUSS is a “semantic segmentation” algorithm compatible with static data (batch processing). The algorithm divides a time series into internally consistent homogenous regions called regimes.

FLUSS produces a time series called the Corrected Arc Curve ( $CAC$ ), corresponding to a given raw time series. $CAC$ annotates the raw time series with information about the likelihood of a regime change at each location.

FLUSS’s advantages

  • Domain Agnosticism FLUSS is a domain agnostic technique that makes no assumptions about the data.
  • Real-World Data Suitability Many techniques assume that every data region belongs to a well-defined semantic segment. However, lack of structure in accumulated data is common. FLUSS can effectively mark these difficult sections as “don’t know”.

For more information about FLUSS, see - https://www.cs.ucr.edu/~eamonn/Segmentation_ICDM.pdf https://stumpy.readthedocs.io/en/latest/Tutorial_Semantic_Segmentation.html#FLUSS

Feature Request

Implementation of FLUSS

Suggestion and Considerations

I have looked into stumpy and matrixprofile packages for Matrix Profile and FLUSS interfacing. This is the summary of my findings:

Interfacing stumpy Stumpy is a well-maintained and documented Python library with a univariate-data implementation of FLUSS. The input data received by the function is the output of the Matrix Profile algorithm, as opposed to the actual time-series data, like in Sktime. In other words, stumpy.fluss workflow is - Time series data (T) → Matrix Profile algorithm, T as input, I as output → fluss(I, ..)

Stumpy has implemented both univariate-data and multivariate-data Matrix Profile (stump and mstump, respectively), but to my understanding stumpy.fluss can only be used with univariate data. Matrix Profile, Multi-dimensional Matrix Profile

interfacing matrixprofile (MPF) Matrixprofile is a well-documented Python library with a univariate-data implementation of matrix profile and other methods that can be used to calculate FLUSS (univariate only, to my understanding). Matrix Profile - mpx, Matrix Profile - stomp, Regimes

Suggestion Creating a multivariate version of FLUSS will be more challenging than planned. I consider interfacing the univariate implementation of stumpy, to begin with, and later moving on to interfacing or implementing a multivariate version of FLUSS (if such a version has been studied).

Tasks

  • Interfacing the univariate implementation of stumpy FLUSS.
  • Interfacing or implementing a multivariate version of FLUSS