wpdec
- hana_ml.algorithms.pal.tsa.wavelet.wpdec(data, wavelet, key=None, col=None, boundary=None, level=None, order=None, compression=None, method=None, threshold=None)
Python wrapper for PAL multi-level (discrete) wavelet packet transformation.
- Parameters:
- dataDataFrame
Time-series data to apply discrete wavelet transform to. It should be comprised of the following two columns:
1st column : Time-stamp, type INTEGER. The stamp values do not need to be in order.
2nd column : Signal values, type DOUBLE or DECIMAL(p,s). The values must be evenly-spaced in time.
- waveletstr
Specifies the wavelet filter used for discrete wavelet transform. Valid options include:
Daubechies family : 'db1' ~ 'db20'
Biorthogonal family: 'bior1.1', 'bior1.3', 'bior1.5', 'bior2.2', 'bior2.4', 'bior2.6', 'bior2.8', 'bior3.1', 'bior3.3', 'bior3.5', 'bior3.7', 'bior3.9', 'bior4.4', 'bior5.5', 'bior6.8'
Reverse Biorthogonal family : 'rbio1.1', 'rbio1.3', 'rbio1.5', 'rbio2.2', 'rbio2.4', 'rbio2.6', 'rbio2.8', 'rbio3.1', 'rbio3.3', 'rbio3.5', 'rbio3.7', 'rbio3.9', 'rbio4.4', 'rbio5.5', 'rbio6.8'
Coifman family: 'coif1' ~ 'coif5'
Symmetric family: 'sym2' ~ 'sym20'
- keystr, optional
Specifies the time-stamp column in
data
.The column should be of type INTEGER. The values do not need to be in order, but must be equal-spaced.
- colstr, optional
Specifies the signal values for wavelet transformation, should be of type DOUBLE or DECIMAL(p,s).
If not specified, it defaults to the first non-key column of
data
.- boundarystr, optional
Specifies the padding method for boundary values. Valid options include:
'zero' : Zero padding
'symmetric' : Symmetric padding
'periodic' : Periodic padding
'reflect' : Reflect padding
'smooth' : Smooth padding
'constant' : Constant padding
Defaults to 'zero'.
- levelint, optional
Specifies the decompose level for wavelet transform.
Defaults to 1.
- order{'index', 'frequency'}
Specifies the order of node in the wavelet packet coefficients table.
'index' : ordered by the indices of nodes(ascending).
'frequency' : ordered by the frequencies of nodes, from low to high.
- compressionbool, optional
Specifies whether or not to discard zero values in wavelet packet coefficients.
Defaults to False.
- method{'no', 'soft', 'hard'}, optional
Specifies the thresholding method applied to wavelet packet coefficients.
'no' : No thresholding
'soft' : Soft-thresholding
'hard' : Hard-thresholding
Defaults to 'no'.
- thresholdfloat, optional
Specifies the threshold value for soft/hard-thresholding.
Valid only when
method
is set as 'soft' or 'hard'.Defaults to 1e-9.
- Returns:
- A DWT object
The returned DWT object contains all related information for the wavelet packet transformation, including wavelet filter, boundary extension type, decomposition level, etc. In particular, it contains the wavelet packet transformation of
data
in its coeff_ attribute.For more details, see the Attributes section of
DWT
.
Examples
Input time-series DataFrame df:
>>> df.collect() ID VAL 0 1 266.0 1 2 145.9 ... 13 14 149.5
2-level wavelet packet transformation of the input data using 'db2' filter and symmetric padding method, with wavelet packet coefficients ordered by nodes' frequencies.
>>> wpres = wpdec(data=df, wavelet='db2', boundary='symmetric', level=2)
wpres is a DWT object containing the decomposition result in its attribute coeff_:
>>> wpres.coeff_.collect() NODE ID COEFFICIENTS 0 0 0 451.442328 1 0 1 405.506091 ... 18 2 3 131.581926 19 2 4 -27.289140 >>> wpres.stats_.collect() NAME VAL 0 LEVEL_COEFF_SIZE {"coeffSize":[14,8,5]} >>> wpres.packet True