BIAS toolbox: Structural bias detection for continuous optimization algorithms
Project description
Deep-BIAS: Bias In Algorithms, Structural
A toolbox for detecting structural bias in continuous optimization heuristics.
With a deep-learning extension to better evaluate the type of bias and gain insights using explainable AI
Setup
This package requires an R-installation to be present.
The R packages can be installed with the install_r_packages
command from the BIAS toolbox.
Install the BIAS toolbox using pip:
pip install struct-bias
Then install the required R packages
from BIAS import install_r_packages
#run first time to install required R packages
install_r_packages()
This installs the following R packages:
- PoweR
- AutoSEARCH
- nortest
- data.table
- goftest
- ddst
Detailed setup using virtual env
- Download and install R from https://cran.r-project.org/
- Download this repository (clone or as zip)
- Create a python virtual env
python -m venv env
- Activate the env (in powershell for example:
env/Scripts/Activate.ps1
) - Install dependencies
pip install -r requirements.txt
- Checkout the
example.py
to start using the BIAS toolbox.
Example
#example of using the BIAS toolbox to test a DE algorithm
from scipy.optimize import differential_evolution
import numpy as np
from BIAS import BIAS, f0, install_r_packages
#run first time to install required R packages
install_r_packages()
bounds = [(0,1), (0, 1), (0, 1), (0, 1), (0, 1)]
#do 30 independent runs (5 dimensions)
samples = []
print("Performing optimization method 30 times of f0.")
for i in np.arange(30):
result = differential_evolution(f0, bounds, maxiter=100)
samples.append(result.x)
samples = np.array(samples)
test = BIAS()
print(test.predict(samples, show_figure=True))
y, preds = test.predict_deep(samples)
test.explain(samples, preds, filename="explanation.png")
Additional files
Note: The code for generating the RF used to predict the type of bias is included, but the full RF is not. These can be found on zenodo: https://doi.org/10.6084/m9.figshare.16546041. The RF models will be downloaded automatically the first time the predict function requires them.
Citation
If you use the BIAS toolbox in a scientific publication, we would appreciate using the following citations:
@ARTICLE{9828803,
author={Vermetten, Diederick and van Stein, Bas and Caraffini, Fabio and Minku, Leandro L. and Kononova, Anna V.},
journal={IEEE Transactions on Evolutionary Computation},
title={BIAS: A Toolbox for Benchmarking Structural Bias in the Continuous Domain},
year={2022},
volume={26},
number={6},
pages={1380-1393},
doi={10.1109/TEVC.2022.3189848}
}
@software{niki_van_stein_2023_7803623,
author = {Niki van Stein and
Diederick Vermetten},
title = {Basvanstein/BIAS: v1.1 Deep-BIAS Toolbox},
month = apr,
year = 2023,
publisher = {Zenodo},
version = {v1.1},
doi = {10.5281/zenodo.7803623},
url = {https://doi.org/10.5281/zenodo.7803623}
}
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 struct-bias-1.2.6.tar.gz
.
File metadata
- Download URL: struct-bias-1.2.6.tar.gz
- Upload date:
- Size: 2.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c789d24b58bf553fe286af906c7f351e1d1456a8e3af2ec01f73791d0fda732 |
|
MD5 | 89dd7a2375fb01fd8a19b1da0bfa5edc |
|
BLAKE2b-256 | 3c4515c3ddd6ec67cd004dd73f911686b861ca0b095bc376966cd03e1e274cbc |
File details
Details for the file struct_bias-1.2.6-py3-none-any.whl
.
File metadata
- Download URL: struct_bias-1.2.6-py3-none-any.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a050d69345e2c5e8f4d79e84d64fd2209fa5e46f465991f12e1eea5ee66a286 |
|
MD5 | f3625366ddaeb0bdf9dd69475a9c42e9 |
|
BLAKE2b-256 | 1d13b2df81bfedf899a30f49aa68f8bbc80916ae6908bac0bb319b117d112bcf |