
pywddff
Python package to perform feature engineering using wavelet transforms, geared towards those who work with tabular data and machine learning models to forecast time series.
Documentation
You can find the documentation for pywddff including API references here.
About the name
pywddff stands for “Python Wavelet Data Driven Forecasting Framework”. WDDFF is an approach to combining wavelet transform generated features and machine learning for forecasting time series. The WDDFF paper can be found here.
Installation
This package is not yet listed on the Python Package Index (PyPI). You can use poetry install to install pywddff by first cloning this repository and then running poetry install from the root directory. Please note that you must have poetry already installed and available from your terminal. See here for instructions on installing poetry on your system.
$ git clone https://github.com/johnswyou/pywddff.git
$ cd pywddff
$ poetry install
Update (June 6, 2023): You can now pip install
$ pip install pywddff
Available wavelet/scaling filters
pywddff gives access to 128 (decomposition level 1) wavelet (high pass) and scaling (low pass) filters.
The following are short names for the available filters:
['bl7', 'bl9', 'bl10',
'beyl',
'coif1', 'coif2', 'coif3', 'coif4', 'coif5',
'db1', 'db2', 'db3', 'db4', 'db5', 'db6', 'db7', 'db8', 'db9', 'db10', 'db11', 'db12',
'db13', 'db14', 'db15', 'db16', 'db17', 'db18', 'db19', 'db20', 'db21', 'db22', 'db23',
'db24', 'db25', 'db26', 'db27', 'db28', 'db29', 'db30', 'db31', 'db32', 'db33',
'db34', 'db35', 'db36', 'db37', 'db38', 'db39', 'db40', 'db41', 'db42', 'db43', 'db44', 'db45',
'fk4', 'fk6', 'fk8', 'fk14', 'fk18', 'fk22',
'han2_3', 'han3_3', 'han4_5', 'han5_5',
'dmey',
'mb4_2', 'mb8_2', 'mb8_3', 'mb8_4', 'mb10_3', 'mb12_3', 'mb14_3', 'mb16_3', 'mb18_3', 'mb24_3', 'mb32_3',
'sym2', 'sym3', 'sym4', 'sym5', 'sym6', 'sym7', 'sym8', 'sym9', 'sym10', 'sym11', 'sym12', 'sym13', 'sym14',
'sym15', 'sym16', 'sym17', 'sym18', 'sym19', 'sym20', 'sym21', 'sym22', 'sym23', 'sym24', 'sym25', 'sym26', 'sym27',
'sym28', 'sym29', 'sym30', 'sym31', 'sym32', 'sym33', 'sym34', 'sym35', 'sym36', 'sym37', 'sym38', 'sym39', 'sym40',
'sym41', 'sym42', 'sym43', 'sym44', 'sym45',
'vaid',
'la8', 'la10', 'la12', 'la14', 'la16', 'la18', 'la20']
where
blcorresponds to “Best-localized Daubechies”beylcorresponds to “Beylkin”coifcorresponds to “Coiflets”dbcorresponds to “Daubechies”fkcorresponds to “Fejér-Korovkin”hancorresponds to “Han linear-phase moments”dmeycorresponds to “Discrete Meyer”mbcorresponds to “Morris minimum-bandwidth”symcorresponds to “Symlets”vaidcorresponds to “Vaidyanathan”lacorresponds to “Least asymmetric”
NOTE: The db1 is the Haar wavelet.
Source of data
The wfilters function from MATALB R2022b’s wavelet toolbox provided 121 of the 128 wavelet (scaling) filters available. The R package wavelets provided the remaining 7 least asymmetric
wavelet (scaling) filters.
Contributing
Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.
License
pywddff was created by John You. It is licensed under the terms of the MIT license.
Credits
pywddff was created with cookiecutter and the py-pkgs-cookiecutter template.