Add max-min (Rawlsian) fairness explainer - #568
Open
propcgamer20-png wants to merge 1 commit into
Open
Conversation
New explainers/maxmin-fairness.md. Covers the fairness objective that
minimizes the maximum group-level loss (Rawls' difference principle)
rather than equalizing a rate across groups, and the real conflict
between it and parity metrics: a model can move toward max-min fairness
while still failing demographic parity.
- Objective-function contrast: demographic parity's constrained average
loss vs max-min's min-of-max over per-group losses.
- Concrete example on the Audit 03 German Credit data (age, under 30): a
plain logistic-regression baseline (older 81.0% acc, younger 70.9%,
worst-group error 29.1%) vs an iterative group-reweighting max-min loop
(worst-group error 27.9%, older unchanged, overall accuracy flat) that
leaves the ~12-point selection-rate gap almost untouched. Cross-refs the
repo's own frozen accuracy_equality_diff (-0.153, p=0.031) as the gap
max-min targets and S1-S4 do not.
- Fully runnable detection/implementation code (fit_maxmin + maxmin_report),
deterministic output verified against the pasted block.
- Limitations: tiny/noisy subgroups without a min-group-size floor;
worst-off is only defined once a loss is chosen; silent on between-group
gaps; levelling-down permitted at the margin without a Pareto constraint.
- Citations verified: Rawls (1971); Hashimoto et al. ICML 2018; Martinez,
Bertran & Sapiro ICML 2020; Diana et al. AIES 2021.
Regenerated the HTML page, OG images, explainers-data.{js,json}, package
mirror, sitemap.xml and llms-full.txt; check_explainer_count.py --fix
bumped the 60 -> 61 mentions. The companion DRO explainer (yakew7#544) will add
the reciprocal cross-links.
propcgamer20-png
requested review from
Shreyash0712 and
yakew7
as code owners
September 10, 2026 09:52
Contributor
|
@propcgamer20-png is attempting to deploy a commit to the yashkewlani2020-gmailcom's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
@yakew7 @Shreyash0712 - new PR touching a path you own, please review. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #543.
New
explainers/maxmin-fairness.mdon the fairness objective that minimizes the maximum group-level loss (Rawls' difference principle) instead of equalizing a rate across groups.Structure (follows fairness-metric-conflicts.md / mitigation-strategies.md)
Objective-function contrast - demographic parity's constrained average loss vs max-min's
minof amaxover per-group losses. No equality constraint; the between-group gap is not penalized.Concrete example - Audit 03 German Credit,
age(under 30), an independent minimal implementation (not the S0-S4 harness):The loop lifts the worst group, leaves the other unchanged, keeps overall accuracy flat - and barely moves the demographic-parity gap, which is the teachable conflict. Cross-references the repo's own frozen
accuracy_equality_diff(-0.153, p = 0.031 inpaper/results-frozen/) as the gap max-min targets and none of S1-S4 do.Runnable code -
fit_maxmin(multiplicative-weights group reweighting) andmaxmin_report. The pasted Script Execution Output is verified byte-for-byte against the extracted block; deterministic with pinned libs.Limitations - tiny/noisy subgroups without a
min_group_sizefloor (ties tofaircode/significance.py); "worst-off" is only defined once a loss is fixed; silent on between-group gaps; levelling-down permitted at the margin without a Pareto constraint.Citations (all verified against the proceedings, not the issue's paraphrase)
Rawls, A Theory of Justice (1971); Hashimoto, Srivastava, Namkoong & Liang, ICML 2018 (PMLR 80:1929-1938); Martinez, Bertran & Sapiro, ICML 2020 (PMLR 119:6755-6764); Diana, Gill, Kearns, Kenthapadi & Roth, AIES 2021 (DOI 10.1145/3461702.3462523).
Notes
check_broken_links.pystays green.check_em_dash.py,check_broken_links.py(1550 links),check_explainer_count.py(61),check_generated_files_current.py,tests/test_build_explainers.pyall pass.