ExponentialMovingAverage

class dtaianomaly.preprocessing.ExponentialMovingAverage(alpha: float)[source]

Compute exponential moving average.

For a given input \(x\), the exponential moving average \(y\) is computed as

\[\begin{split}y_0 &= x_0 \\ y_t &= \alpha \cdot x_t + (1 - \alpha) \cdot y_{t-1}\end{split}\]

with \(0 < \alpha < 1\) the smoothing factor. Higher values of \(\alpha\) result in more smoothing.

Parameters:
alphafloat

The decaying factor to be used in the exponential moving average.

Examples

>>> from dtaianomaly.preprocessing import ExponentialMovingAverage
>>> from dtaianomaly.data import demonstration_time_series
>>> X, y = demonstration_time_series()
>>> preprocessor = ExponentialMovingAverage(alpha=0.5)
>>> X_, y_ = preprocessor.fit_transform(X, y)
check_is_fitted() None

Raise an error if this object is not fitted.

Check whether this object is fitted, and if it is not fitted, an exception is thrown.

Raises:
NotFittedError

If this object is not fitted.

fit(X: ndarray, y: ndarray = None) Preprocessor

Fit this preprocessor.

First checks the inputs with check_preprocessing_inputs(), and then fits this preprocessor.

Parameters:
Xarray-like of shape (n_samples, n_attributes)

Raw time series.

yarray-like, default=None

Ground-truth information.

Returns:
Preprocessor

Returns the fitted instance self.

fit_transform(X: ~numpy.ndarray, y: ~numpy.ndarray = None) -> (<class 'numpy.ndarray'>, numpy.ndarray | None)

Fit this preprocessor and transform the given time series.

First checks the inputs with check_preprocessing_inputs(), and then chains the fit and transform methods on the given data, i.e., first fit this preprocessor on the given X and y, after which the given X and y will be transformed.

Parameters:
Xarray-like of shape (n_samples, n_attributes)

Raw time series.

yarray-like of shape (n_samples), default=None

Ground-truth information.

Returns:
X_transformednp.ndarray of shape (n_samples, n_attributes)

Preprocessed raw time series.

y_transformednp.ndarray of shape (n_samples)

The transformed ground truth. If no ground truth was provided (y=None), then None will be returned as well.

is_fitted() bool

Check whether this object is fitted.

Check whether all the attributes of this object that end with an underscore (‘_’) has been initialized.

Returns:
bool

True if and only if all the attributes of this object ending with ‘_’ are initialized.

requires_fitting() bool

Check whether this object requires fitting.

Check whether any of the attributes of this object ends with an underscore (‘_’), which indicates that the attribute is set when the object is fitted. Note that this method does not check whether the object is fitted, i.e., whether the attributes have been set.

Returns:
bool

True if and only if this object has attributes that end with ‘_’.

transform(X: ~numpy.ndarray, y: ~numpy.ndarray = None) -> (<class 'numpy.ndarray'>, numpy.ndarray | None)

Transform the given time series.

First checks the inputs with check_preprocessing_inputs(), and then transforms (i.e., preprocesses) the given time series.

Parameters:
Xarray-like of shape (n_samples, n_attributes)

Raw time series.

yarray-like of shape (n_samples), default=None

Ground-truth information.

Returns:
X_transformednp.ndarray of shape (n_samples, n_attributes)

Preprocessed raw time series.

y_transformednp.ndarray of shape (n_samples)

The transformed ground truth. If no ground truth was provided (y=None), then None will be returned as well.