Adds feature weighting and selection via Differentiable Imbalance as a functionality to DADApy.
This is soon to be published work by @wildromi, @vdeltatto with minor contributions by me based on implementations mostly by @wildromi.
The functionalities are separated into:
a Cython extension in dadapy/_cython/cython_differentiable_imbalance.pyx and a Cython 3.0.8 cythonized cython_differentiable_imbalance.c.
general differentiable imbalance utilities in dadapy/_utils/differentiable_imbalance.py.
feature weighting and selection using these utilities in dadapy/feature_weighting.py, inheriting from Base.
unittests for all additional functionalities in tests/test_feature_weighting/.
The data class now also inherits FeatureWeighting.
All exposed functions have docstrings, a tutorial is still missing and will be added directly by @vdeltatto after PR.
Types of changes
What types of changes does your code introduce?
[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
Checklist
Put an x in the boxes that apply.
[x] Lint and unit tests pass locally with my changes
[x] I have added tests that prove my fix is effective or that my feature works
Proposed changes
Adds feature weighting and selection via Differentiable Imbalance as a functionality to DADApy. This is soon to be published work by @wildromi, @vdeltatto with minor contributions by me based on implementations mostly by @wildromi.
The functionalities are separated into:
dadapy/_cython/cython_differentiable_imbalance.pyx
and a Cython 3.0.8 cythonizedcython_differentiable_imbalance.c
.dadapy/_utils/differentiable_imbalance.py
.dadapy/feature_weighting.py
, inheriting from Base.tests/test_feature_weighting/
.All exposed functions have docstrings, a tutorial is still missing and will be added directly by @vdeltatto after PR.
Types of changes
What types of changes does your code introduce?
Checklist
Put an
x
in the boxes that apply.