Skip to content

Commit 18af05d

Browse files
authored
Merge pull request #557 from slsgzs-cloud/fix-docs-545-546-554-555-556
fix: doc corrections for COMPAS reduction, Benefits Denial proxies, ROADMAP staleness (fixes #545, #546, #555)
2 parents 9cd70fc + d0dc7ce commit 18af05d

4 files changed

Lines changed: 9 additions & 9 deletions

File tree

Benefits Denial/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ python3 "Benefits Denial/fair.py" # mitigated (protected attribute + proxies
1919
## What the audit controls
2020

2121
- Protected attribute(s): Sex, Race, Origin, Age
22-
- Proxy feature(s) removed in `fair.py`: Relationship, Marital Status, Hours, Occupation
22+
- Proxy feature(s) removed in `fair.py`: Relationship, Marital Status, Hours, Occupation, fnlwgt
2323
- Fairness metric: Demographic Parity (difference in positive-prediction rate between groups)
2424

2525
## Expected result (published, paper-aligned)

COMPAS/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ python3 "COMPAS/fair.py" # mitigated (protected attribute + proxies dropped)
2626

2727
| Group | Gap, biased (`unfair.py`) | Gap, mitigated (`fair.py`) | Reduction |
2828
|-------|--------------------------:|---------------------------:|----------:|
29-
| Race | 86.77% | 15.69% | 71% |
29+
| Race | 86.77% | 15.69% | 82% |
3030

3131
These match the "Results at a Glance" table in the [main README](../README.md#results-at-a-glance) and the frozen snapshot in `paper/results-frozen/`. The scripts are deterministic at `random_state=42`, so a correct local run reproduces them exactly. If your numbers differ, check the seed, the split, and your package versions before opening an issue - and never edit the frozen numbers to match a local run (see [CLAUDE.md](../CLAUDE.md)).

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,12 @@ Each audit ships as both a pair of Python scripts (`unfair.py` / `fair.py`) for
6868

6969
| # | Domain | Protected Attribute | Proxies Removed | Gap Before → After | Reduction |
7070
|:-:|--------|--------------------|-----------------|--------------------|:---------:|
71-
| 01 | [Criminal Justice](#01--compas--criminal-justice-bias) | Race | Custody Status | 86.77% → 15.69% | **71%** |
71+
| 01 | [Criminal Justice](#01--compas--criminal-justice-bias) | Race | Custody Status | 86.77% → 15.69% | **82%** |
7272
| 02 | [Hiring](#02--ai-fair-recruitment--hiring-bias) | Gender | Age | 4.51% → 0.12% | **97.3%** |
7373
| 03 | [Lending](#03--german-credit-lending--lending-bias) | Age | Employment Tenure | 7.16% → 1.89% | **73.6%** |
7474
| 04 | [Healthcare](#04--insurance-denial--healthcare-bias) | Age, Gender | BMI, Smoker, Diabetic | Age: 7.93% → 3.18% | **60%** |
7575
|| | | | Gender: 5.44% → 1.54% | **72%** |
76-
| 05 | [Welfare](#05--benefits-denial--welfare-eligibility-bias) | Sex, Race, Origin, Age | Relationship, Marital Status, Hours, Occupation | Sex: 18.00% → 8.52% | **53%** |
76+
| 05 | [Welfare](#05--benefits-denial--welfare-eligibility-bias) | Sex, Race, Origin, Age | Relationship, Marital Status, Hours, Occupation, fnlwgt | Sex: 18.00% → 8.52% | **53%** |
7777
|| | | | Race: 12.75% → 6.90% | **46%** |
7878
|| | | | Origin: 4.40% → 0.52% | **88%** |
7979
| 06 | [Healthcare Readmission](#06--healthcare-readmission--clinical-bias) | Race, Gender, Age | Payer Code, Discharge Disposition, Medical Specialty, Prior Inpatient | Gender: 0.02% → 0.04% | **+100% ↑** |
@@ -367,11 +367,11 @@ X = pd.get_dummies(df[[
367367

368368
| Group | High-Risk Flag Rate |
369369
|-------|:-------------------:|
370-
| Black Defendants | 84.71% |
370+
| Black Defendants | 84.82% |
371371
| White Defendants | 69.02% |
372372
| **New Fairness Gap** | **15.69%** |
373373

374-
**Result: 71% reduction in the fairness gap.**
374+
**Result: 82% reduction in the fairness gap.**
375375

376376
> **Key insight:** Removing race alone isn't enough. Proxy variables like custody status carry the same racial signal because of historical over-policing of Black communities. Both the protected attribute *and* its proxies must be removed.
377377
@@ -550,8 +550,8 @@ Trained with sex, race, age, and national origin directly, plus four proxy varia
550550

551551
| Group | Ineligibility Flag Rate |
552552
|-------|:-----------------------:|
553-
| Male applicants | 25.71% |
554-
| Female applicants | 7.71% |
553+
| Male applicants | 25.82% |
554+
| Female applicants | 7.82% |
555555
| **Fairness Gap (Sex)** | **18.00%** |
556556

557557
| Group | Ineligibility Flag Rate |

ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Fair Code is an open-source responsible AI platform explaining algorithmic bias,
2727

2828
| Stars | Contributors | Forks | Watching | Social Reach | Countries | Audits | Explainers | CI |
2929
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
30-
| 46 | 28 | 32 | 8 | 30K+ | 20 | 7 | 53 | ✅ every push/PR |
30+
| 46 | 29 | 33 | 8 | 30K+ | 20 | 7 | 60 | ✅ every push/PR |
3131

3232
> The earlier paper freeze has lifted - the real paper, with fresh results, is now planned for next
3333
> year. `paper/results-frozen/` (tag `v1.0-paper`, commit `bbef2ba`) is kept as a reference snapshot.

0 commit comments

Comments
 (0)