Skip to content

Linear model change (CostLinear)#

ruptures.costs.costlinear.CostLinear #

Least-square estimate for linear changes.

__init__(self) special #

Initialize the object.

Source code in ruptures/costs/costlinear.py
def __init__(self):
    """Initialize the object."""
    self.signal = None
    self.covar = None
    self.min_size = 2

error(self, start, end) #

Return the approximation cost on the segment [start:end].

Parameters:

Name Type Description Default
start int

start of the segment

required
end int

end of the segment

required

Returns:

Type Description
float

segment cost

Exceptions:

Type Description
NotEnoughPoints

when the segment is too short (less than min_size samples).

Source code in ruptures/costs/costlinear.py
def error(self, start, end) -> float:
    """Return the approximation cost on the segment [start:end].

    Args:
        start (int): start of the segment
        end (int): end of the segment

    Returns:
        segment cost

    Raises:
        NotEnoughPoints: when the segment is too short (less than `min_size` samples).
    """
    if end - start < self.min_size:
        raise NotEnoughPoints
    y, X = self.signal[start:end], self.covar[start:end]
    _, residual, _, _ = lstsq(X, y, rcond=None)
    return residual.sum()

fit(self, signal) #

Set parameters of the instance. The first column contains the observed variable. The other columns contains the covariates.

Parameters:

Name Type Description Default
signal array

signal of shape (n_samples, n_regressors+1)

required

Returns:

Type Description
CostLinear

self

Source code in ruptures/costs/costlinear.py
def fit(self, signal) -> "CostLinear":
    """Set parameters of the instance. The first column contains the
    observed variable. The other columns contains the covariates.

    Args:
        signal (array): signal of shape (n_samples, n_regressors+1)

    Returns:
        self
    """
    assert signal.ndim > 1, "Not enough dimensions"

    self.signal = signal[:, 0].reshape(-1, 1)
    self.covar = signal[:, 1:]
    return self