Back to models
Transformer

VmdTransformer

MultivariateInverse transform

Variational Mode Decomposition transformer.

Quickstart

python
from sktime.transformations.vmd import VmdTransformer

estimator = VmdTransformer(K=None, kMax=30, alpha=2000, tau=0.0, DC=0, init=1, tol=1e-07, energy_loss_coefficient=0.01, returned_decomp='u')

Parameters(9)

Kint, optional (default=’None’)

the number of Intrinsic Mode Functions to decompose original series to. If None, will decompose the series iteratively with increasing K, until kMax is reached or the sum of the decomposed modes against the original series is less than the energy_loss_coefficient parameter (whichever occurs earlier). In this case, the lowest K to satisfy one of the condition is used in transform.

kMaxint, optional (default=30)

the limit on the number of Intrinsic Mode Functions to decompose the original series to if the energy_loss_coefficient hasn’t been reached. Only used if K is None, ignored otherwise.

energy_loss_coefficientint, optional (default=0.01)

decides the acceptable loss of information from the original series when the decomposed modes are summed together as calculated by the energy loss coefficient. Only used if K is None, ignored otherwise.

alphaint, optional (default=2000)
bandwidth constraint for the generated Intrinsic Mode Functions, balancing parameter of the data-fidelity constraint
tauint, optional (default=0.)
noise tolerance of the generated modes, time step of dual ascent
DCint, optional (default=0)
Imposed DC parts
initint, optional (default=1)
parameter for omegas, default of one will initialize the omegas uniformly, 1 = all omegas initialized uniformly 0 = all omegas start at 0, 2 = all omegas are initialized at random
tolint, optional (default=1e-7)
convergence tolerance criterion
returned_decompbool, optional (default=”u”)

which decomposition object is returned by transform

  • "u": the decomposed modes

  • "u_hat": the mode spectra (absolute values)

  • "u_both": both the decomposed modes and the mode spectra, these will be returned column concatenated, first the modes then the spectra

Examples

>>> from sktime.transformations.vmd import VmdTransformer
>>> from sktime.datasets import load_solar
>>> y = load_solar ()
>>> transformer = VmdTransformer ()
>>> modes = transformer. fit_transform (y) VmdTransformer can be used in a forecasting pipeline, to decompose, forecast individual components, then recompose:
>>> from sktime.forecasting.trend import TrendForecaster # doctest: +SKIP
>>> pipe = VmdTransformer() * TrendForecaster() # doctest: +SKIP
>>> pipe.fit(y, fh=[1, 2, 3]) # doctest: +SKIP
>>> y_pred = pipe.predict() # doctest: +SKIP

References

  1. [1 ] (1, 2) K. Dragomiretskiy and D. Zosso, - Variational Mode Decomposition: IEEE Transactions on Signal Processing, vol. 62, no. 3, pp. 531-544, Feb.1, 2014, doi: 10.1109/TSP.2013.2288675. [2 ] Vinícius R. Carvalho, Márcio F.D. Moraes, Antônio P. Braga, Eduardo M.A.M. Mendes - Evaluating five different adaptive decomposition methods for EEG signal seizure detection and classification, Biomedical Signal Processing and Control, Volume 62, 2020, 102073, ISSN 1746-8094 https://doi.org/10.1016/j.bspc.2020.102073. [3 ] https://github.com/vrcarva/vmdpy