tsseg.algorithms.autoplait package

AutoPlait — parameter-free mining of co-evolving time sequences.

Description

AutoPlait is a fully automatic algorithm for segmenting and summarising large collections of co-evolving time series. It discovers an unknown number of regimes (recurring patterns of different durations) by compressing the data into a hierarchy of Hidden Markov Models. Each regime is modelled as a separate AR-HMM, and the algorithm uses a Minimum Description Length (MDL) criterion to jointly determine the optimal number of regimes, their boundaries and their internal structure — all without user-specified parameters.

The method operates in four steps:

  1. CutPointSearch — locate candidate segment boundaries by fitting HMMs.

  2. CreateRegime — build an AR-HMM for each candidate segment.

  3. MergeRegime — greedily merge similar regimes to reduce the description length.

  4. Iterate — repeat until convergence.

AutoPlait is linear in the input size and achieves near-perfect precision and recall on the benchmarks reported in the original paper.

Type: state detection
Supervision: semi-supervised (requires n_cps)
Scope: univariate and multivariate
Complexity: \(O(n)\)

Parameters

Name

Type

Default

Description

n_cps

int / None

None

Number of change points. Required if ground-truth y is not provided.

Usage

from tsseg.algorithms import AutoPlaitDetector

detector = AutoPlaitDetector(n_cps=4)
labels = detector.fit_predict(X)

Note

AutoPlait relies on a compiled C binary (autoplait_c). The binary is bundled in tsseg/c/autoplait/ and must be built before first use.

Implementation: Adapted from the original C implementation by Matsubara et al. BSD 3-Clause.

Reference: Matsubara, Sakurai & Faloutsos (2014), AutoPlait: Automatic Mining of Co-evolving Time Sequences, SIGMOD.

Submodules

tsseg.algorithms.autoplait.detector module

This module provides an aeon-compatible wrapper for the AutoPlait algorithm.

class tsseg.algorithms.autoplait.detector.AutoPlaitDetector(n_cps=None)[source]

Bases: BaseSegmenter

Wrapper for the AutoPlait state detection algorithm.

References

set_fit_request(*, axis: bool | None | str = '$UNCHANGED$') AutoPlaitDetector

Configure whether metadata should be requested to be passed to the fit method.

Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with enable_metadata_routing=True (see sklearn.set_config()). Please check the User Guide on how the routing mechanism works.

The options for each parameter are:

  • True: metadata is requested, and passed to fit if provided. The request is ignored if metadata is not provided.

  • False: metadata is not requested and the meta-estimator will not pass it to fit.

  • None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str: metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default (sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Parameters:

axis (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for axis parameter in fit.

Returns:

self – The updated object.

Return type:

object

set_predict_request(*, axis: bool | None | str = '$UNCHANGED$') AutoPlaitDetector

Configure whether metadata should be requested to be passed to the predict method.

Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with enable_metadata_routing=True (see sklearn.set_config()). Please check the User Guide on how the routing mechanism works.

The options for each parameter are:

  • True: metadata is requested, and passed to predict if provided. The request is ignored if metadata is not provided.

  • False: metadata is not requested and the meta-estimator will not pass it to predict.

  • None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str: metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default (sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Parameters:

axis (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for axis parameter in predict.

Returns:

self – The updated object.

Return type:

object

Module contents

class tsseg.algorithms.autoplait.AutoPlaitDetector(n_cps=None)[source]

Bases: BaseSegmenter

Wrapper for the AutoPlait state detection algorithm.

References

set_fit_request(*, axis: bool | None | str = '$UNCHANGED$') AutoPlaitDetector

Configure whether metadata should be requested to be passed to the fit method.

Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with enable_metadata_routing=True (see sklearn.set_config()). Please check the User Guide on how the routing mechanism works.

The options for each parameter are:

  • True: metadata is requested, and passed to fit if provided. The request is ignored if metadata is not provided.

  • False: metadata is not requested and the meta-estimator will not pass it to fit.

  • None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str: metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default (sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Parameters:

axis (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for axis parameter in fit.

Returns:

self – The updated object.

Return type:

object

set_predict_request(*, axis: bool | None | str = '$UNCHANGED$') AutoPlaitDetector

Configure whether metadata should be requested to be passed to the predict method.

Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with enable_metadata_routing=True (see sklearn.set_config()). Please check the User Guide on how the routing mechanism works.

The options for each parameter are:

  • True: metadata is requested, and passed to predict if provided. The request is ignored if metadata is not provided.

  • False: metadata is not requested and the meta-estimator will not pass it to predict.

  • None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str: metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default (sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Parameters:

axis (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for axis parameter in predict.

Returns:

self – The updated object.

Return type:

object