https://github.com/transferwise/minerva
MINE-based feature selection
https://github.com/transferwise/minerva
Last synced: 8 months ago
JSON representation
MINE-based feature selection
- Host: GitHub
- URL: https://github.com/transferwise/minerva
- Owner: transferwise
- Created: 2023-05-23T18:54:47.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-06T16:23:05.000Z (almost 3 years ago)
- Last Synced: 2025-02-17T05:24:35.222Z (over 1 year ago)
- Language: Python
- Size: 49.4 MB
- Stars: 0
- Watchers: 48
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# MINERVA
### MINE-based feature selection
Minerva is a feature selection tool
based on
neural estimation of mutual information
between
features
and
targets.
A detailed explanation of
our feature selection methodology is available in
the accompanying paper.
## Installation
### Install from source
Checkout the repository and navigate to the root directory. Then,
```
$ poetry install
```
### Run tests
After installation you can run the unit tests by doing:
```
$ poetry run pytest
```
## Run experiments
The repository collects several experiments of feature selection using Minerva.
You can find them in the directory `experiments/`.
You can use those scripts to reproduce our results.
For example, you can:
1. Estimate mutual information between two normal random variables at different level of correlation:
```
$ python experiments/normalsmile.py
```
Tensorboard logs will be available at `tb_logs/normalsmile/`
The same experiment can be run through the notebook `notebooks/normalsmile.ipynb`.
2. Feature selection in a linear trasnformation setting:
```
$ python experiments/linear.py
```
Tensorboard logs will be available at `tb_logs/linear/`
The same experiment can be run through the notebook `notebooks/linear.ipynb`.
Moreover,
the experiments discussed in the paper
were run using the scripts
in `experiments/experiment_1`.