Benchmarking framework for Feature Selection algorithms 🚀
Project description
fseval
A Feature Selector and Feature Ranker benchmarking library. Neatly integrates with wandb and sklearn. Uses Hydra as a config parser.
Usage
pip install fseval
fseval help:
fseval --help
Now, create a wandb account and login to the CLI. We are now able to run benchmarks 💪🏻. The results will automatically be uploaded to the wandb dashboard.
Run ANOVA F-Value on Iris dataset:
fseval +dataset=iris +estimator@ranker=anova_f_value +estimator@validator=decision_tree
Supported Feature Rankers
A collection of feature rankers are already built-in, which can be used without further configuring. Others need their dependencies installed. List of rankers:
Ranker | Dependency | Command line argument |
---|---|---|
ANOVA F-Value | <no dep> | estimator@ranker=anova_f_value |
Boruta | pip install Boruta |
estimator@ranker=boruta |
Chi2 | <no dep> | estimator@ranker=chi2 |
Decision Tree | <no dep> | estimator@ranker=decision_tree |
FeatBoost | pip install git+https://github.com/dunnkers/FeatBoost.git@support-cloning (ℹ️) |
estimator@ranker=featboost |
MultiSURF | pip install skrebate |
estimator@ranker=multisurf |
Mutual Info | <no dep> | estimator@ranker=mutual_info |
ReliefF | pip install skrebate |
estimator@ranker=relieff |
Stability Selection | pip install git+https://github.com/dunnkers/stability-selection.git@master matplotlib (ℹ️) |
estimator@ranker=stability_selection |
TabNet | pip install pytorch-tabnet |
estimator@ranker=tabnet |
XGBoost | pip install xgboost |
estimator@ranker=xgb |
Infinite Selection | pip install git+https://github.com/dunnkers/infinite-selection.git@master (ℹ️) |
estimator@ranker=infinite_selection |
ℹ️ This library was customized to make it compatible with the fseval pipeline.
If you would like to install simply all dependencies, download the fseval requirements.txt file and run pip install -r requirements.txt
.
Wandb support
Wandb can be enabled by using +backend=wandb
. It's used to store metrics, but also files. Set any parameter to be passed to wandb.init
like so:
fseval callbacks.wandb.project=<your-project-name> callbacks.wandb.group=<run-group>
Runs can be restored as follows:
fseval callbacks.wandb.id=<wandb_run_id> callbacks.wandb.log_metrics=false
→ make sure the rest of the config is the same as the previous run. You can now overwrite tables.
To disable wandb, use:
fseval "~callbacks.wandb"
About
Built by Jeroen Overschie as part of the Masters Thesis (Data Science and Computational Complexity track at the University of Groningen).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fseval-2.1.0.tar.gz
.
File metadata
- Download URL: fseval-2.1.0.tar.gz
- Upload date:
- Size: 33.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
ffd165319e20ba3b52e17ce9bb75593c4911575b317a6cdf3a6df9f649c2684f
|
|
MD5 |
db13a82bd7258a8dcfbcee20a3fb7a61
|
|
BLAKE2b-256 |
cf07c36e5885a82fde1602769c2504725d951997e8b49c33726455fd2bb0971a
|
File details
Details for the file fseval-2.1.0-py3-none-any.whl
.
File metadata
- Download URL: fseval-2.1.0-py3-none-any.whl
- Upload date:
- Size: 55.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
3309dab4323130f3359d4a878e63f899eb662bd3dc590fc36da2388609186b95
|
|
MD5 |
3f907eaab0057eef40e4ce79653f1c9c
|
|
BLAKE2b-256 |
25a52d1fb656920e469f9ac184584a9477163c65d9c20a55813461df32b20ed2
|