Skip to content

CostL2 (least squared deviation)#

Bases: BaseCost

Least squared deviation.

Source code in ruptures/costs/costl2.py
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class CostL2(BaseCost):
    r"""Least squared deviation."""

    model = "l2"

    def __init__(self):
        """Initialize the object."""
        self.signal = None
        self.min_size = 1

    def fit(self, signal) -> "CostL2":
        """Set parameters of the instance.

        Args:
            signal (array): array of shape (n_samples,) or (n_samples, n_features)

        Returns:
            self
        """
        if signal.ndim == 1:
            self.signal = signal.reshape(-1, 1)
        else:
            self.signal = signal

        return self

    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

        return self.signal[start:end].var(axis=0).sum() * (end - start)

__init__() #

Initialize the object.

Source code in ruptures/costs/costl2.py
12
13
14
15
def __init__(self):
    """Initialize the object."""
    self.signal = None
    self.min_size = 1

error(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

Raises:

Type Description
NotEnoughPoints

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

Source code in ruptures/costs/costl2.py
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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

    return self.signal[start:end].var(axis=0).sum() * (end - start)

fit(signal) #

Set parameters of the instance.

Parameters:

Name Type Description Default
signal array

array of shape (n_samples,) or (n_samples, n_features)

required

Returns:

Type Description
CostL2

self

Source code in ruptures/costs/costl2.py
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def fit(self, signal) -> "CostL2":
    """Set parameters of the instance.

    Args:
        signal (array): array of shape (n_samples,) or (n_samples, n_features)

    Returns:
        self
    """
    if signal.ndim == 1:
        self.signal = signal.reshape(-1, 1)
    else:
        self.signal = signal

    return self