tsseg.algorithms.dynp package

Dynamic Programming (DynP) — exact optimal segmentation.

Description

Dynamic programming finds the exact minimum of the sum of segment costs by enumerating all admissible partitions. The user must specify the number of change points in advance (consider PELT or BinSeg when this is unknown).

Complexity is \(O(C\,K\,n^{2})\) where K is the number of change points, n the sample count and C the cost-function complexity. To reduce runtime, increase min_size and jump:

  • min_size controls the minimum distance between change points.

  • jump controls the grid of admissible positions (only multiples of jump).

Type: change point detection
Supervision: semi-supervised (n_cps required)
Scope: univariate and multivariate
Complexity: \(O(C\,K\,n^{2})\)

Parameters

Name

Type

Default

Description

n_cps

int

1

Number of change points to detect (>= 0).

model

str

"l2"

Ruptures cost model.

min_size

int

2

Minimum segment length.

jump

int

5

Grid step for candidate positions.

cost_params

dict / None

None

Extra arguments for the cost function.

axis

int

0

Time axis.

Usage

from tsseg.algorithms import DynpDetector

detector = DynpDetector(n_cps=3, model="l2")
labels = detector.fit_predict(X)

Implementation: Vendored from ruptures v1.1.8. BSD 2-Clause.

Reference: Auger & Lawrence (1989), Bulletin of Mathematical Biology.

Submodules

tsseg.algorithms.dynp.detector module

Dynamic programming detector built on the vendored ruptures implementation.

class tsseg.algorithms.dynp.detector.DynpDetector(*, n_cps=1, model='l2', min_size=2, jump=5, cost_params=None, semi_supervised=True, axis=0)[source]

Bases: BaseSegmenter

Exact dynamic programming change point detector.

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

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$') DynpDetector

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

Dynamic programming change point detector.