Explainer: What Is Max-Min (Rawlsian) Fairness?
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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