Overview
The AI Fairness 360 toolkit is an open-source library to help detect and mitigate bias in machine learning models. The AI Fairness 360 R package includes a comprehensive set of metrics for datasets and models to test for biases, explanations for these metrics, and algorithms to mitigate bias in datasets and models.
Installation
Install the CRAN version:
install.packages("aif360")
Or install the development version from GitHub:
# install.packages("devtools")
devtools::install_github("Trusted-AI/AIF360/aif360/aif360-r")
Then, use the install_aif360() function to install AIF360:
Installation methods
AIF360 is distributed as a Python package and so needs to be installed within a Python environment on your system. By default, the install_aif360() function attempts to install AIF360 within an isolated Python environment (“r-reticulate”).
You can check using reticulate::conda_python()
and reticulate::py_config()
Suggested steps
- Install reticulate and check if you have miniconda installed. If you do, go to step 2.
install.packages("reticulate")
reticulate::conda_list()
If you get an error: Error: Unable to find conda binary. Is Anaconda installed?
, please install miniconda
reticulate::install_miniconda()
If everything worked, you should get the message:
* Miniconda has been successfully installed at '/home/rstudio/.local/share/r-miniconda'.
You can double check:
::conda_list() reticulate
You will get something like this:
name python1 r-miniconda /home/rstudio/.local/share/r-miniconda/bin/python
2 r-reticulate /home/rstudio/.local/share/r-miniconda/envs/r-reticulate/bin/python
- You can create a new conda env and then configure which version of Python to use:
reticulate::conda_create(envname = "r-test")
reticulate::use_miniconda(condaenv = "r-test", required = TRUE)
Check that everything is working reticulate::py_config()
.
- If you haven’t yet, please install the aif360 package
install.packages("aif360")
and then install aif360 dependencies
aif360::install_aif360(envname = "r-test")
Note that this step should take a few minutes and the R session will restart.
- You can now activate your Python environment
reticulate::use_miniconda(condaenv = "r-test", required = TRUE)
Getting Started
# load a toy dataset
data <- data.frame("feature1" = c(0,0,1,1,1,1,0,1,1,0),
"feature2" = c(0,1,0,1,1,0,0,0,0,1),
"label" = c(1,0,0,1,0,0,1,0,1,1))
# format the dataset
formatted_dataset <- aif360::binary_label_dataset(data_path = data,
favor_label = 0,
unfavor_label = 1,
unprivileged_protected_attribute = 0,
privileged_protected_attribute = 1,
target_column = "label",
protected_attribute = "feature1")
Troubleshooting
If you encounter any errors during the installation process, look for your issue here and try the solutions.
Contributing
If you’d like to contribute to the development of aif360, please read these guidelines.
Please note that the aif360 project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.