Skip to content
Back to skills

Compas Fairness Eval

ASecurity

Evaluates a fairness-aware ensemble learning framework on recidivism risk prediction. It probes the model's ability to balance predictive accuracy against multiple group fairness constraints across racial demographics in a counterfactual causal setting. Use when the user wants to benchmark on COMPAS, or asks about evaluating this task. Reports MSE.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 11, 2026
researchpythonperformance

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add qhjqhj00/research-skills-pool --skill compas-fairness-eval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Compas Fairness Eval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Compas Fairness Eval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/qhjqhj00-compas-fairness-eval/badge)](https://www.skillsdirectory.com/skills/qhjqhj00-compas-fairness-eval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: compas-fairness-eval
description: Evaluates a fairness-aware ensemble learning framework on recidivism risk prediction. It probes the model's ability to balance predictive accuracy against multiple group fairness constraints across racial demographics in a counterfactual causal setting. Use when the user wants to benchmark on COMPAS, or asks about evaluating this task. Reports MSE.
metadata:
  skill_kind: dataset_eval
  source_arxiv: 2109.00173
  bibtex_key: mishler2021fade
  confidence: medium
---

# compas-fairness-eval

> FADE: FAir Double Ensemble Learning for Observable and Counterfactual Outcomes — Mishler et al. (2021) (arXiv:2109.00173, 2021)

## What this evaluates

Evaluates a fairness-aware ensemble learning framework on recidivism risk prediction. It probes the model's ability to balance predictive accuracy against multiple group fairness constraints across racial demographics in a counterfactual causal setting.

## Datasets

- **COMPAS** — total ?; splits: D_learn (-1), D_train_nuis (-1), D_train_target (-1), D_test_nuis (-1), D_test_target (-1)

## Metrics

- `MSE` **(primary)** — range: [0, 1]
  - Mean squared error between predicted risk scores and actual rearrest outcomes.
- `rate-diff` — range: [0, 1]
  - Absolute difference in predicted positive rates between African-American and Caucasian defendants.
- `FPR-diff` — range: [0, 1]
  - Absolute difference in false positive rates (P(pred=1|y=0)) between racial groups.
- `FNR-diff` — range: [0, 1]
  - Absolute difference in false negative rates (P(pred=0|y=1)) between racial groups.

## Input / output format

**Input**: Three features: indicator for age > 45, indicator for age < 25, and number of prior arrests (0-29). Sensitive attribute: race (African-American or Caucasian).

**Output**: Continuous risk score normalized to the range [0.1, 1].

## Scoring recipe

```python
def compute_metrics(y_true, y_pred, sensitive):
    mse = np.mean((y_pred - y_true) ** 2)
    # Threshold t required for FPR/FNR; not specified in text
    y_pred_bin = (y_pred >= t).astype(int)
    y_true_bin = (y_true >= t).astype(int)
    groups = ['AA', 'C']
    rates = {g: np.mean(y_pred_bin[sensitive==g]) for g in groups}
    fprs = {g: np.mean(y_pred_bin[sensitive==g] & ~y_true_bin[sensitive==g]) for g in groups}
    fnrs = {g: np.mean(~y_pred_bin[sensitive==g] & y_true_bin[sensitive==g]) for g in groups}
    return {
        'MSE': mse,
        'rate-diff': abs(rates['AA'] - rates['C']),
        'FPR-diff': abs(fprs['AA'] - fprs['C']),
        'FNR-diff': abs(fnrs['AA'] - fnrs['C'])
    }
```

## Common pitfalls

- The paper does not specify the decision threshold used to compute FPR and FNR from continuous risk scores.
- The evaluation uses a non-standard 5-way data split for doubly robust estimation, which differs from standard train/test splits.
- Disparities are reported as absolute differences between two racial groups, but the exact binarization of the continuous COMPAS scores for rate/FPR/FNR is not explicitly defined.

## Evidence (verbatim from paper)

> We split the data into five datasets, each with approximately 1040 rows: D_learn, D_train_nuis, D_train_target, D_test_nuis, and D_test_target. As base predictors, we used the four model types from the previous section as well as a logistic regression. We used random forest classifiers for the nuisance predictors in both the training and test data. Table 7 gives the estimated performance of the five base predictors, COMPAS, and the OLS predictor, which spans COMPAS and the base predictors. ... We compute FADE predictors using the same sets of penalty vectors Λ as in the previous section. Figure 7 shows disparities and MSE values for all 1331 predictors.

## Citation

```bibtex
@misc{mishler2021fade,
  title={FADE: FAir Double Ensemble Learning for Observable and Counterfactual Outcomes},
  author={Mishler et al. (2021)},
  year={2021},
  note={arXiv:2109.00173}
}
```

- arXiv: 2109.00173

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.