This evaluation probes an AutoML framework's ability to jointly optimize predictive performance and fairness constraints during pipeline search. It measures how well a multi-criteria genetic algorithm balances accuracy metrics against demographic parity, equalised odds, and ABROCA while simultaneously selecting data and features. Use when the user wants to benchmark on adult, credit-card, portuguese-bank-marketing, or asks about evaluating this task. Reports DP.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill fairness-aware-automl-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Fairness Aware Automl Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-fairness-aware-automl-eval)More formats (shields.io, HTML) on the badges page.
---
name: fairness-aware-automl-eval
description: This evaluation probes an AutoML framework's ability to jointly optimize predictive performance and fairness constraints during pipeline search. It measures how well a multi-criteria genetic algorithm balances accuracy metrics against demographic parity, equalised odds, and ABROCA while simultaneously selecting data and features. Use when the user wants to benchmark on adult, credit-card, portuguese-bank-marketing, or asks about evaluating this task. Reports DP.
metadata:
skill_kind: dataset_eval
source_arxiv: 2604.10224
bibtex_key: simoes2026fairnessawareautoml
confidence: high
---
# fairness-aware-automl-eval
> Exploring the impact of fairness-aware criteria in AutoML — Simões and Correia (2026) (arXiv:2604.10224, 2026)
## What this evaluates
This evaluation probes an AutoML framework's ability to jointly optimize predictive performance and fairness constraints during pipeline search. It measures how well a multi-criteria genetic algorithm balances accuracy metrics against demographic parity, equalised odds, and ABROCA while simultaneously selecting data and features.
## Datasets
- **adult** — total 48842; splits: test (-1)
- **credit-card** — total 30000; splits: test (-1)
- **portuguese-bank-marketing** — total 45211; splits: test (-1)
## Metrics
- `DP` **(primary)** — range: [0, 1]
- Demographic Parity measures the statistical parity of positive prediction rates across sensitive groups. All metrics are transformed and scaled to [0, 1] for the optimization objective, where 0 represents the optimal value (minimisation of unfairness).
- `EO` — range: [0, 1]
- Equalised Odds measures the equality of true positive and false positive rates across sensitive groups. Scaled to [0, 1] where 0 is optimal.
- `ABROCA` — range: [0, 1]
- Area Between ROC Curves evaluates fairness via ROC curve area differences across sensitive slices. Scaled to [0, 1] where 0 is optimal.
- `MCC` — range: [0, 1]
- Matthews Correlation Coefficient measures predictive performance. Scaled to [0, 1] where 0 is optimal after transformation.
- `TPR` — range: [0, 1]
- True Positive Rate measures predictive performance. Scaled to [0, 1] where 0 is optimal after transformation.
## Input / output format
**Input**: Binary classification datasets containing sensitive attributes. The AutoML framework receives stratified training folds and optimizes a pipeline (data selection + model tuning) under a 30-minute time budget.
**Output**: The best-performing pipeline configuration and its corresponding performance/fairness scores evaluated on the held-out test set.
## Scoring recipe
```python
# Normalize to [0,1] where 0 is optimal (minimization)
def scale(val, higher_better=True):
return 1.0 - val if higher_better else val
# Compute on test set
dp = compute_demographic_parity(y_true, y_pred, sensitive)
eo = compute_equalised_odds(y_true, y_pred, sensitive)
abroca = compute_abroca(y_true, y_pred, sensitive)
mcc = compute_mcc(y_true, y_pred)
tpr = compute_tpr(y_true, y_pred)
# Scaled values for optimization
dp_s, eo_s, abroca_s = scale(dp), scale(eo), scale(abroca)
mcc_s, tpr_s = scale(mcc, higher_better=True), scale(tpr, higher_better=True)
# Fitness function (alpha=0.8)
alpha = 0.8
fitness = alpha * (dp_s + eo_s + abroca_s) / 3 + (1 - alpha) * (mcc_s + tpr_s) / 2
return fitness
```
## Common pitfalls
- All reported metrics are transformed and scaled to [0, 1] for the optimization objective, where 0 represents the optimal value (minimisation). Readers must account for this inversion when comparing to standard metric conventions.
- Results are averaged across 30 independent runs with 5-fold cross-validation, yielding 150 solutions per dataset. Statistical significance is assessed using t-tests or Wilcoxon signed-rank tests with Bonferroni correction.
- The framework optimizes both data selection (instance/feature) and model tuning simultaneously, meaning reported performance includes the effects of data reduction, not just model accuracy.
## Evidence (verbatim from paper)
> All the metrics are normalised and scaled to [0, 1], where 0 represents the optimal value for our minimisation objective of reducing both predictive error and unfairness. Appropriate transformations were applied to convert all metrics to this scale, specially Equation [3] which originally uses a different range of values. DP and EO fairness metrics were calculated using the Fairlearn framework, while ABROCA was implemented based on Mangal et al. work.
## Citation
```bibtex
@misc{simoes2026fairnessawareautoml,
title={Exploring the impact of fairness-aware criteria in AutoML},
author={Simões and Correia (2026)},
year={2026},
note={arXiv:2604.10224}
}
```
- arXiv: 2604.10224
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!