Skip to content

CASE-Lab-UMD/SPARC

Repository files navigation

SPARC: Scalable Path-Specific Counterfactual Fairness via Causal Conditional Independence

🔍 Overview

This project aims to mitigate demographic bias (e.g., race, gender) in medical image diagnosis using causal modeling and adversarial training.

It supports datasets including:

  • MIMIC-CXR
  • CheXpert
  • TCGA-LUAD

🏗️ Project Structure

  • adv.py: Main script for training and testing fairness-aware models with adversarial perturbation
  • lib/: Contains model architectures (ResNet, ViT, Generator, Discriminator)
  • import_datasets.py: Data loading utilities for supported datasets
  • grad_rollout.py: GradCAM-based visualization and mask generation
  • images/: Saves masked and perturbed image visualizations

🚀 How to Run

1. Install Dependencies

conda create -n fair-diagnosis python=3.8
conda activate fair-diagnosis

Make sure you also have pytorch, torchvision, and pytorch-grad-cam installed.

2. Dataset Preparation

Place your datasets in the datasets/ directory with the following structure:

datasets/
├── mimic-cxr/
│   └── metadata.csv
├── CheXpert-v1.0-small/
│   └── train.csv / valid.csv
├── TCGA-LUAD/
│   └── metadata.csv

3. Run the Code

Example: Train with adversarial fairness on MIMIC-CXR

python adv.py --dataset mimic-cxr --model resnet18 --feature mimic_exp \
              --alpha 0.8 --beta 1.0 --noise_strength 0.1 \
              --num_epochs 10 --visualize

Optional flags:

  • --debug: Use a small subset of data
  • --no_adversarial: Disable adversarial training
  • --no_cam: Disable GradCAM mask guidance
  • --visualize: Save masked output images to images/

📈 Evaluation Metrics

The framework logs both performance and fairness metrics:

  • Accuracy, AUC, F1 Score
  • DP (Demographic Parity) and EO (Equalized Odds)
  • ADF (Approximate Diagnosis Fairness)

📊 Visualization

Adversarial masks are guided using GradCAM to focus on zones important for:

  • Diagnosis prediction ()
  • Sensitive attribute prediction (Ŝ)

The resulting heatmaps help interpret which regions are being masked or preserved.

About

Scalable Path-Specific Counterfactual Fairness via Causal Conditional Independence

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors