Guide
Equità tra gruppi
Un modello può superare la sua soglia di accuratezza per ogni gruppo ed essere comunque più severo con uno di essi: il doppio dei falsi negativi, o la metà delle selezioni. oloproof fairness legge un file di casi decisi e chiede quanto i gruppi siano distanti. Risponde con gli stessi quattro stati di ogni altra regola. Il metodo di parità è stato ammesso da un audit indipendente il 3 novembre 2026, alle condizioni che questa pagina indica: casi indipendenti, gruppi dichiarati prima, ogni regola sui casi in cui i suoi attributi sono registrati, e parità misurata rispetto alle tue etichette.
Il file e la dichiarazione
Un file CSV o JSONL con una riga per caso: un id, l'etichetta (0 o 1), la previsione (0 o 1, vuota quando il sistema non ne ha data nessuna), facoltativamente una probabilità, e una colonna per attributo protetto.
fairness:
name: loan-screen
cases: decided.csv
label: label
prediction: prediction
probability: score
attributes:
sex: [female, male]
age_band: [under_30, 30_to_60, over_60]
intersections:
- [sex, age_band]
min_cell: 30
rules:
- {id: fnr-by-sex, rate: false_negative, attribute: sex, max_group_gap: 0.05}
- {id: fnr-crossed, rate: false_negative, attribute: [sex, age_band], max_group_gap: 0.10}oloproof fairness fairness.yaml --policy release.yaml --jsonL'intervallo presuppone che ogni caso sia una persona diversa. Indicate la colonna che identifica la persona con unit: person_id e un file in cui una persona ha più casi viene rifiutato; senza di essa, la risposta dichiara l'ipotesi.
Il tasso è uno tra error, false_positive (sui casi etichettati 0), false_negative (sui casi etichettati 1) o selection (previsto 1, su tutti i casi). Nomina i gruppi prima di leggere il file. Ogni regola legge solo i casi i cui attributi propri sono registrati con un valore dichiarato; un caso a cui manca un attributo è lasciato fuori dalle regole che lo usano e mantenuto dalle altre, e ogni risposta conta ciò che ha lasciato fuori e perché. Quando un attributo manca più spesso per alcune persone che per altre, la risposta riguarda i casi in cui è registrato, che sono un'altra popolazione: leggi il conteggio prima del verdetto. Una regola che lascia fuori più di max_left_out del file (10% per impostazione predefinita; impostalo sulla regola) si legge INSUFFICIENT_EVIDENCE, perché i casi registrati potrebbero non rappresentare più gli altri. Il codice di uscita è quello della regola peggiore: 0 PASS, 1 FAIL, 3 INSUFFICIENT_EVIDENCE, 4 MANUAL_REVIEW.
Come decide
Il tasso di ogni gruppo riceve l'intervallo esatto che Oloproof usa per un tasso, con il budget di errore diviso per il numero di gruppi dichiarati. Ogni differenza tra due gruppi è delimitata a partire da questi intervalli, tutte insieme, così nessuna coppia ha bisogno di una propria correzione. Una regola max_group_gap passa quando l'estremo superiore di ogni divario è pari alla soglia o al di sotto, e fallisce quando un divario supera la soglia con tutto il suo intervallo. Una previsione mancante resta nel suo gruppo ed è contata al suo peggio.
Gruppi piccoli e gruppi incrociati
Incrociare due attributi moltiplica le celle, e alcune saranno piccole. Una cella con meno casi con una previsione di min_cell (i casi la cui previsione manca non contano) è riportata INSUFFICIENT_EVIDENCE sulla propria riga, conta ancora nella suddivisione e impedisce alla regola di passare, perché il divario più grande potrebbe trovarsi lì. Raccogli più casi per quella cella, o dichiara un incrocio più grossolano prima dell'esecuzione.
Soglie minime e divari
Usa worst_group per una soglia minima che ogni gruppo deve superare («ogni regione risolve almeno l'80 %»), e max_group_gap per un tetto alla distanza tra gruppi («i falsi negativi differiscono al massimo di cinque punti»). Un requisito di governance su esiti non distorti è sostenuto in parte dal divario, per il tasso scelto; un requisito che ogni gruppo sia servito bene, dalla soglia minima. Nessuno dei due da solo mostra che un sistema è equo. La maggior parte dei sistemi ha bisogno di entrambi.
Calibrazione per gruppo
Con una colonna di probabilità, l'errore di calibrazione atteso di ogni gruppo è riportato per ogni attributo e per ogni incrocio dichiarato, su calibration_bins intervalli di probabilità di uguale ampiezza (10 per impostazione predefinita). Non blocca mai: nessun metodo ammesso lo delimita, e in un gruppo piccolo è rumoroso.
Cosa questo non può dirti
- Quale tasso sia giusto equalizzare: è una tua decisione, e vale la pena registrarla insieme agli attributi che hai scelto.
- Nulla sui gruppi che non hai dichiarato, né sulle persone contate due volte (una persona, più casi).
- Se la calibrazione differisce tra gruppi più di quanto spieghi il caso.
- Se le etichette stesse siano distorte: la parità è misurata rispetto alle etichette che porti.