Skip to content

Explainer: What Are Pre-, In-, and Post-Processing Fairness Mitigations? #297

Description

@yakew7

Add explainers/mitigation-strategies.md.

This repo's own benchmark harness is built entirely around this taxonomy - baseline -> unawareness (pre-processing: drop the protected attribute) -> unawareness_proxy_removal (pre-processing: drop proxies too) -> in_processing (fairlearn.reductions.ExponentiatedGradient, a constraint baked into training) -> post_processing (fairlearn.postprocessing.ThresholdOptimizer, per-group thresholds applied after training) - yet no explainer teaches what these three families of mitigation actually are or why the taxonomy matters, even though it's the methodology behind every 'before/after' number in the repo. On COMPAS the five strategies take the demographic parity gap from 86% to 18% to 12% to 1.4% to 2.4% (frozen results, already quoted on the homepage) - a real, ready-made anchor showing the strategies aren't interchangeable and don't monotonically improve.

Suggested structure (match class-imbalance.md): one-sentence definition -> why it matters for fairness (which stage of the pipeline you intervene at changes what you can and can't fix) -> core concept (pre- vs in- vs post-processing, with this repo's own S0-S4 ladder as the concrete taxonomy) -> concrete example using the real frozen COMPAS progression in paper/results-frozen/results_fairness.csv -> runnable detection/comparison code -> limitations (in-processing needs retraining access; post-processing needs group membership at inference time, which isn't always legal/available) -> related concepts/projects/further reading.

Related: demographic-parity, equalized-odds, protected-attribute.

See CONTRIBUTING.md: add explainers/<slug>.md plus a one-line entry in assets/explainers-data.json; the build script generates the page.

Freeze-safe: explainers are fully open for contribution during the paper freeze. If you quote any Fair Code benchmark result, use the frozen numbers in paper/results-frozen/ (never re-run your own) - see CLAUDE.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationhelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions