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.
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>.mdplus a one-line entry inassets/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 inresults/(orpaper/results-frozen/for the earlier reference snapshot) and say which one.