CallMeFair Documentation

Welcome to the CallMeFair documentation! CallMeFair is a comprehensive framework for automatic bias mitigation in AI systems. This framework provides tools and techniques to identify, measure, and reduce algorithmic bias in machine learning models.

Contributing

Indices and tables

What is CallMeFair?

CallMeFair is an open-source framework designed to help researchers and practitioners implement bias mitigation techniques in machine learning systems. The framework provides:

  • Comprehensive Bias Mitigation: Support for preprocessing, in-processing, and postprocessing techniques

  • Multiple Algorithms: Implementation of state-of-the-art bias mitigation methods

  • Easy Integration: Simple API for integrating bias mitigation into existing workflows

  • Evaluation Tools: Built-in metrics and evaluation methods for fairness assessment

  • Extensible Architecture: Framework for adding custom bias mitigation techniques

Key Features

Feature

Description

Preprocessing Methods

Reweighing, Disparate Impact Remover, Learning Fair Representations

In-processing Methods

Adversarial Debiasing, MetaFair Classifier

Postprocessing Methods

Calibrated Equalized Odds, Equalized Odds, Reject Option Classification

Evaluation Metrics

Statistical Parity Difference, Equalized Odds Difference, Theil Index

Search Framework

Automatic discovery of optimal bias mitigation strategies

Grid Search

Systematic evaluation of bias mitigation combinations

Quick Start

Here’s a simple example of how to use CallMeFair:

from callmefair.util.fair_util import BMInterface
from callmefair.mitigation.fair_bm import BMManager
import pandas as pd

# Load your data
train_df = pd.read_csv('train.csv')
val_df = pd.read_csv('val.csv')
test_df = pd.read_csv('test.csv')

# Initialize the interface
bm_interface = BMInterface(train_df, val_df, test_df, 'label', ['gender'])

# Define groups
privileged_groups = [{'gender': 1}]
unprivileged_groups = [{'gender': 0}]

# Create bias mitigation manager
bm_manager = BMManager(bm_interface, privileged_groups, unprivileged_groups)

# Apply preprocessing bias mitigation
bm_manager.pre_Reweighing()

# Apply in-processing bias mitigation
ad_model = bm_manager.in_AD(debias=True)

# Apply postprocessing bias mitigation
mitigated_predictions = bm_manager.pos_CEO(valid_pred, test_pred)

Installation

Install CallMeFair using pip:

pip install callmefair

Or install from source:

git clone https://github.com/your-repo/callmefair.git
cd callmefair
pip install -e .

Dependencies

CallMeFair requires the following dependencies:

  • Python 3.8+

  • pandas

  • numpy

  • scikit-learn

  • aif360

  • tensorflow (optional, for adversarial debiasing)

Citation

If you use CallMeFair in your research, please cite:

@article{callmefair2024,
  title={CallMeFair: A Comprehensive Framework for Bias Mitigation in AI Systems},
  author={Your Name and Co-authors},
  journal={arXiv preprint},
  year={2024}
}

Support

  • Documentation: This site contains comprehensive documentation

  • GitHub Issues: Report bugs and request features on GitHub

  • Discussions: Join community discussions on GitHub Discussions

  • Email: Contact the development team at support@callmefair.org

License

CallMeFair is released under the MIT License. See the LICENSE file for details.