wprec

hana_ml.algorithms.pal.tsa.wavelet.wprec(dwt, wavelet=None, boundary=None)

Python wrapper for PAL multi-level inverse discrete wavelet transform.

Parameters
dwtDWT

A DWT object containing wavelet packet coefficients as well as other related information to apply the inverse transformation(i.e. reconstruction).

waveletstr, optional

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'

If not specified, the value in dwt.wavelet will be used.

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

If not specified, the value in dwt.boundary will be used.

Returns
DataFrame

The reconstructed time-series data from inverse wavelet packet transform, structured as follows:

  • 1st column : ID, type INTEGER, which reflects the order of time-series.

  • 2nd column : VALUE, type DOUBLE, the reconstructed time-series data(signal) from wavelet decomposition coefficients.

Examples

Assume dwt is a DTW object with the following attributes:

>>> dwt.coeff_.collect()
    NODE  ID  COEFFICIENTS
0      0   0    451.442328
1      0   1    405.506091
2      0   2    350.691644
3      0   3    412.118406
4      0   4    362.046517
5      1   0     35.520329
6      1   1    -53.885358
7      1   2     71.258862
8      1   3     78.767514
9      1   4    -70.401833
10     3   0     28.554022
11     3   1    -11.228318
12     3   2    -57.112074
13     3   3    -16.468003
14     3   4    -19.933824
15     2   0     87.523979
16     2   1     59.195043
17     2   2     16.514617
18     2   3    131.581926
19     2   4    -27.289140
>>> dwt.stats_.collect()
               NAME                     VAL
0  LEVEL_COEFF_SIZE  {"coeffSize":[14,8,5]}
>>> dwt.packet
True

The original time-series data then can be reconstructed as follows:

>>> rec = wprec(dwt)
>>> rec.collect()
    ID  VALUE
0    0  266.0
1    1  145.9
2    2  181.3
3    3  119.3
4    4  180.3
5    5  168.5
6    6  231.8
7    7  224.5
8    8  192.8
9    9  122.9
10  10  336.5
11  11  185.9
12  12  194.3
13  13  149.5