yakew7 / yakew7/Fair-Code

Explainer: What Is Max-Min (Rawlsian) Fairness?

Open
#543 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

documentation help wanted
Dominant language
HTML
Stars
47
Forks
45
Avg merge
1h 57m
Merged PRs (30d)
95

Description

Add explainers/maxmin-fairness.md.

None of this repo's 56 explainers cover max-min (Rawlsian) fairness - a genuinely different fairness objective from every parity-based metric already covered here (Demographic Parity, Equalized Odds, Predictive Parity, etc.). Parity metrics ask "are the groups treated equally to each other"; max-min fairness (drawing on Rawls' "difference principle" from A Theory of Justice) asks a different question entirely: "how do we make the worst-off group's outcome as good as possible," even if that means groups end up unequal to each other. A model can satisfy max-min fairness while badly failing demographic parity, and vice versa - a real, teachable conflict this repo's own Fairness Metric Conflicts explainer doesn't cover, since it only compares parity-style metrics against each other.

Suggested structure (match fairness-metric-conflicts.md): one-sentence definition -> why it matters (parity can be satisfied by making everyone worse off equally, which max-min explicitly rejects; conversely optimizing only for the worst-off group can widen a parity gap) -> core concept (minimize the maximum group-level loss/error rather than equalize a rate across groups - contrast the objective function directly against demographic parity's) -> a concrete example - implement a simple max-min training objective (e.g. reweighting training loss toward whichever group currently has the worst per-group accuracy/error, an iterative or reweighted approach) against one of this repo's real audits, and compare the resulting per-group outcomes against this repo's own frozen baseline numbers to show the trade-off concretely, with real code and real (not invented) results -> detection/implementation code -> limitations (max-min can be dominated by outlier/tiny subgroups if not paired with a minimum-group-size floor - tie this back to this repo's own min_group_size/small-sample-warning concept; "worst-off" needs a chosen loss function, and different choices can rank groups differently) -> related concepts (fairness-metric-conflicts, mitigation-strategies, class-imbalance) and projects.

Related: fairness-metric-conflicts, mitigation-strategies, class-imbalance.

Key citations to verify and use: Hashimoto, Srivastava, Namkoong, Liang (2018), "Fairness Without Demographics in Repeated Loss Minimization" (ICML); Martinez, Bertran, Sapiro (2020), "Minimax Pareto Fairness: A Multi Objective Perspective" (ICML) - confirm the exact venue/year/finding yourself before citing, don't trust this issue's paraphrase.

See CONTRIBUTING.md: add explainers/<slug>.md plus a one-line entry in assets/explainers-data.json; the build script generates the page. Per CLAUDE.md, the paper freeze is lifted - if you quote a Fair Code benchmark result, use the current numbers in results/ (or paper/results-frozen/ for the earlier reference snapshot) and say which one.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with explainers/fairness-metric-conflicts.md, CONTRIBUTING.md, CLAUDE.md, and the current audit results in results/; use paper/results-frozen/ only for the earlier snapshot. Add explainers/maxmin-fairness.md, a one-line assets/explainers-data.json entry, verified citations, and real comparison results from an existing audit, then run the repository build to confirm the generated page.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
documentation, machine-learning
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.