Class PELTOptions
- Namespace
- SignalSharp.Detection.PELT
- Assembly
- SignalSharp.dll
Represents the configuration options for the Piecewise Linear Trend Change (PELT) algorithm.
public record PELTOptions : IEquatable<PELTOptions>
- Inheritance
-
PELTOptions
- Implements
- Inherited Members
Remarks
These options allow customization of the PELT algorithm's behavior, including the cost function used to evaluate segment quality, the minimum segment size, and the jump parameter for candidate change point evaluation.
Adjust these options based on the characteristics of your data, the expected nature of the changes, and the desired sensitivity versus computational speed trade-off.
Properties
CostFunction
The cost function used to measure the goodness-of-fit or homogeneity of a segment. Must implement IPELTCostFunction. The choice of cost function is critical and depends on the type of change being detected (e.g., change in mean, variance, rate).
Defaults to L2CostFunction (sensitive to changes in mean).
public IPELTCostFunction CostFunction { get; init; }
Property Value
Jump
The step size (or jump interval) for evaluating candidate change points. Must be >= 1.
Jump = 1
corresponds to the exact PELT algorithm, evaluating all valid previous change points.
Jump > 1
introduces an approximation by only checking potential previous change points
at intervals of Jump
(within the admissible set). This can significantly speed up the algorithm,
especially for long signals or complex cost functions, but may miss the true optimal segmentation.
It's a trade-off between speed and exactness.
Defaults to 1 (exact PELT).
public int Jump { get; init; }
Property Value
MinSize
The minimum number of data points required in any valid segment. Must be >= 1.
This prevents the detection of overly short segments. It should be chosen based on the
minimum meaningful duration of a stable state in the data. A larger MinSize
reduces sensitivity to very short-lived changes but improves robustness against noise.
Defaults to 1.
public int MinSize { get; init; }