PiecewiseAggregateApproximation

class dtaianomaly.preprocessing.PiecewiseAggregateApproximation(n: int)[source]

Perform piecewise aggregate approximation [19].

Piecewise Aggregate Approximation (PAA) is a form of dimensionality reduction of time series, originally proposed for fast indexing of time series in large databases. Given a value for \(n\), PAA divides the time series in \(n\) equi-sized frames. Next, each frame is replaced by its mean value. Specifically, for a time series \(x\) of length \(N\), position \(i\) in the transformed time series \(y\) equals:

\[y_i = \frac{n}{N} \displaystyle\sum_{j=N/N(i-1)+1}^{(n/N)i} x_j\]

For multivariate time series, the dimension of each attribute is reduced independently, but the same frames are used.

Parameters:
nint

The number of equi-sized frames to generate.

Examples

>>> from dtaianomaly.preprocessing import PiecewiseAggregateApproximation
>>> from dtaianomaly.data import demonstration_time_series
>>> X, y = demonstration_time_series()
>>> preprocessor = PiecewiseAggregateApproximation(n=8)
>>> 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.