Skip to content
Back to skills

Fairlearn

ASecurity

"Use Fairlearn to assess group fairness, compute disparity metrics,

  • 247 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
datapythongobashapibackendperformance

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 20 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill fairlearn --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fairlearn?

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

Security grade badge for Fairlearn
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-fairlearn/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-fairlearn)

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: fairlearn
description: "Use Fairlearn to assess group fairness, compute disparity metrics,
  visualize subgroup performance, and mitigate unfairness with preprocessing,
  reductions, postprocessing, or adversarial learning."
disable-model-invocation: true
metadata:
  disco-role: operating
license: MIT
---

# Fairlearn

Use this repo skill when a task names `fairlearn`, asks for the Fairlearn Python package, or uses Fairlearn vocabulary such as `MetricFrame`, `sensitive_features`, demographic parity, equalized odds, `CorrelationRemover`, `ExponentiatedGradient`, `GridSearch`, `ThresholdOptimizer`, `AdversarialFairnessClassifier`, or Fairlearn dataset fetchers.

Fairlearn is API-first. This checkout does not define a Fairlearn-specific command-line interface, so route future agents to Python APIs, bundled references, and the smoke scripts in this skill.

## Install and quick verification

For normal package use:

```bash
python -m pip install fairlearn
```

Add optional plotting and adversarial-learning dependencies only when the workflow needs them:

```bash
python -m pip install matplotlib        # group plots and threshold-optimizer plots
python -m pip install torch             # PyTorch adversarial backend
# TensorFlow is an alternative adversarial backend, but was not verified in this skill run.
```

From this skill directory, run the bundled root check when you need a safe import and optional-backend smoke test:

```bash
python scripts/check_install.py --include-optional
```

Read [`references/installation.md`](references/installation.md) for version and optional dependency details, [`references/troubleshooting.md`](references/troubleshooting.md) for cross-cutting failures, and [`references/repo-provenance.md`](references/repo-provenance.md) before deciding whether this skill is stale for a newer Fairlearn checkout.

## Route map

| Task signal | Read this sub-skill | Why |
| --- | --- | --- |
| Group metrics, `MetricFrame`, `selection_rate`, demographic parity/equalized odds metrics, intersections, bootstrapped confidence intervals, model comparison plots, ROC-by-group plots | [`sub-skills/assessment/SKILL.md`](sub-skills/assessment/SKILL.md) | Assessment owns Fairlearn metrics, grouped outputs, CIs, and plotting helpers. |
| Remove linear correlation with sensitive columns, fair representation learning, `CorrelationRemover`, `PrototypeRepresentationLearner`, preprocessing before a downstream estimator | [`sub-skills/preprocessing/SKILL.md`](sub-skills/preprocessing/SKILL.md) | Preprocessing owns transformations applied before model training. |
| Fairness-constrained training with sklearn-compatible estimators, `ExponentiatedGradient`, `GridSearch`, `DemographicParity`, `EqualizedOdds`, `BoundedGroupLoss`, `sample_weight_name` | [`sub-skills/reductions/SKILL.md`](sub-skills/reductions/SKILL.md) | Reductions owns algorithms that reduce fairness constraints to weighted supervised-learning problems. |
| Adjust a trained predictor with group-specific thresholds, `ThresholdOptimizer`, `plot_threshold_optimizer`, `prefit`, `predict_method`, post-fit parity constraints | [`sub-skills/postprocessing/SKILL.md`](sub-skills/postprocessing/SKILL.md) | Postprocessing owns prediction-time threshold/interpolation mitigation. |
| Neural adversarial fairness, PyTorch or TensorFlow backends, callbacks, CUDA, `AdversarialFairnessClassifier`, `AdversarialFairnessRegressor` | [`sub-skills/adversarial/SKILL.md`](sub-skills/adversarial/SKILL.md) | Adversarial workflows have backend-specific model, optimizer, and training pitfalls. |
| Built-in datasets, `fetch_adult`, `fetch_acs_income`, `fetch_boston`, `return_X_y`, `as_frame`, `data_home`, dataset fairness caveats | [`sub-skills/datasets/SKILL.md`](sub-skills/datasets/SKILL.md) | Dataset loaders have network/cache behavior and dataset-specific schemas. |
| Installing, checking versions, optional extras, missing matplotlib/torch/tensorflow, `show_versions`, import/runtime diagnostics | [`sub-skills/installation/SKILL.md`](sub-skills/installation/SKILL.md) | Installation owns environment and dependency recovery paths. |

## Operating rules

- Treat Fairlearn as a sociotechnical fairness toolkit, not an automated fairness oracle. Metric choices and mitigation goals must be tied to the user's problem context.
- Keep row alignment explicit. `X`, `y_true`/`y`, predictions, and `sensitive_features` must describe the same samples in the same order.
- Use `sensitive_features` for group definitions even when those columns are also present in `X`. Do not assume ignoring sensitive features is enough to assess or mitigate unfairness.
- Start with assessment before mitigation unless the user already gives a constrained mitigation algorithm and metric target.
- Prefer tiny synthetic smoke checks or cached data before networked dataset downloads. Fairlearn dataset fetchers use OpenML-style downloads and cache under a data home.
- Make optional dependencies explicit. Plotting requires matplotlib; adversarial mitigation requires either PyTorch or TensorFlow. The PyTorch CPU path and optional CUDA acceleration were verified for this skill; TensorFlow was only documented as an alternative.
- The generated references and scripts are self-contained. Do not instruct future agents to open this repo's original docs, tests, examples, or source scripts for normal operation.

## Shared runtime files

- [`references/fairness-framing.md`](references/fairness-framing.md) summarizes Fairlearn's group-fairness framing, sensitive features, parity constraints, disparity metrics, and limits.
- [`references/installation.md`](references/installation.md) covers install commands, optional dependencies, import checks, and version inspection.
- [`references/troubleshooting.md`](references/troubleshooting.md) covers package-wide import, plotting, backend, data-shape, and stale-version failures.
- [`references/repo-provenance.md`](references/repo-provenance.md) records source revision, package version, evidence paths, backend verification, and refresh signals.
- [`references/repo-routing-metadata.json`](references/repo-routing-metadata.json) is structured metadata consumed by DisCo's managed repo-skills router import transaction.
- [`scripts/check_install.py`](scripts/check_install.py) validates the installed Fairlearn package, stable public submodules, and optional plotting/adversarial dependencies.

## Good first branch decisions

- If the prompt says "is my model fair?", "compare groups", or names a metric, start with assessment.
- If it asks to transform features before training, start with preprocessing.
- If it asks to train a fair model from scratch with a sklearn estimator, start with reductions.
- If it already has a fitted predictor or score function and wants fair thresholds, start with postprocessing.
- If it names neural networks, PyTorch, TensorFlow, callbacks, or CUDA, start with adversarial.
- If it asks for Adult, ACSIncome, Boston, diabetes, bank, or credit-card sample data, start with datasets.
- If imports, missing extras, or version questions block the task, start with installation and root troubleshooting.

Files in this skill

  • SKILL.md7 KB
  • references/fairness-framing.md4.9 KB
  • references/installation.md3.4 KB
  • references/repo-provenance.md2.3 KB
  • references/repo-routing-metadata.json311 B
  • references/troubleshooting.md4.8 KB
  • scripts/check_install.py4.3 KB
  • sub-skills/adversarial/SKILL.md3.8 KB
  • sub-skills/adversarial/references/backends-and-training.md5.9 KB
  • sub-skills/adversarial/references/troubleshooting.md2.4 KB
  • sub-skills/adversarial/scripts/smoke_torch_adversarial.py3.4 KB
  • sub-skills/assessment/SKILL.md4.3 KB
  • sub-skills/assessment/references/metricframe-workflows.md4.7 KB
  • sub-skills/assessment/references/plotting-and-confidence-intervals.md4 KB
  • sub-skills/assessment/references/troubleshooting.md2.5 KB
  • sub-skills/assessment/scripts/smoke_assessment.py4.4 KB
  • sub-skills/datasets/SKILL.md3.5 KB
  • sub-skills/datasets/references/dataset-loaders.md3.4 KB
  • sub-skills/datasets/references/troubleshooting.md1.8 KB
  • sub-skills/datasets/scripts/preview_dataset_loaders.py2.6 KB

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.