fairAITools

mitigateBias

Beschreibung

Verringert die Verzerrung während des Trainings von Vorhersagemodellen unter Verwendung des Exponentiated Gradient Reduction Algorithmus. Diese Aktion ermöglicht es, Fairness-Metriken wie demografische Parität, ausgeglichene Quoten oder prädiktive Parität durch Anpassung der Beobachtungsgewichte in iterativen Trainingsschritten zu optimieren.

fairAITools.mitigateBias / biasMetric="string", bound=double, cutoff=double, event="string", frequency={...}, learningRate=double, maxIters=long, predictedVariables={{...}, {...}, ...}, response={...}, responseLevels={"string-1", "string-2", ...}, rocStep=double, seed=double, sensitiveVariable={...}, table={...}, tolerance=double, trainProgram="string", tuneBound=boolean;
Einstellungen
ParameterBeschreibung
biasMetric Gibt die Art der zu verwendenden Bias-Messung an. Mögliche Werte sind 'DEMOGRAPHICPARITY', 'EQUALIZEDODDS', 'EQUALOPPORTUNITY' oder 'PREDICTIVEPARITY'.
bound Gibt den Grenzwert für den Exponentiated Gradient Reduction Algorithmus an.
cutoff Gibt den Schwellenwert für die Klassifizierung an, der zur Erstellung der Konfusionsmatrix verwendet wird.
event Gibt den formatierten Wert der Zielvariable an, der das interessierende Ereignis darstellt.
frequency Gibt die Variable an, die die Häufigkeitswerte enthält.
learningRate Gibt die Schrittweite für die Aktualisierung im Exponentiated Gradient Reduction Algorithmus an.
maxIters Gibt die maximale Anzahl von Iterationen für den Exponentiated Gradient Reduction Algorithmus an.
predictedVariables Gibt die Liste der Variablen an, die die Vorhersagen des Modells enthalten.
response Gibt die Zielvariable für das überwachte Lernen an.
responseLevels Gibt die Liste der formatierten Werte der Zielvariable an.
rocStep Gibt die Schrittgröße für die ROC-Berechnungen (Receiver Operating Characteristic) an.
seed Gibt den Startwert für den Zufallszahlengenerator an, um reproduzierbare Ergebnisse zu gewährleisten.
sensitiveVariable Gibt die sensible Variable an, die in den Bias-Berechnungen verwendet wird.
table Gibt die Eingabedatentabelle für das Training an.
tolerance Gibt die Toleranz für die Verletzung der Paritätsbeschränkung an.
trainProgram Gibt den CASL-Code an, der zum Trainieren eines Modells innerhalb des Bias-Minderungsprozesses verwendet wird.
tuneBound Gibt an, ob der Grenzwert (bound) optimiert werden soll.
Datenerstellung

Erstellen einer Beispieltabelle 'hmeq_biased', die für die Demonstration der Bias-Minderung verwendet wird. Die Tabelle enthält Informationen über Kreditantragsteller, einschließlich der Zielvariable 'BAD', der sensiblen Variable 'RACE' und anderer relevanter Merkmale.

Kopiert!
1 
2DATA casuser.hmeq_biased;
3SET sampsio.hmeq;
4IF race = '' THEN race = 'White';
5 
6RUN;
7 

Beispiele

Dieses Beispiel zeigt eine grundlegende Verwendung der Aktion 'mitigateBias', um ein Modell zu trainieren und dabei die prädiktive Parität in Bezug auf die Variable 'RACE' zu verbessern.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3fairAITools.mitigateBias TABLE='hmeq_biased', response={name='BAD'}, sensitiveVariable={name='RACE'}, trainProgram='
4PROC LOGISTIC
5DATA={{table}} OUTMODEL={{casout}};
6MODEL BAD(event="1")=DEBTINC;
7 
8RUN;
9';
10 
11RUN;
12 
13QUIT;
14 
Ergebnis :
Die Aktion führt einen iterativen Trainingsprozess durch. Die resultierenden Tabellen enthalten das trainierte Modell und die Bewertungsmetriken, die eine Verringerung der Verzerrung gemäß der prädiktiven Parität zeigen.

Dieses Beispiel verwendet die Aktion 'mitigateBias' mit der Metrik 'EQUALIZEDODDS'. Es legt eine Toleranz von 0.01, eine Lernrate von 0.05 und eine maximale Anzahl von 20 Iterationen fest. Ziel ist es, ein Modell zu erstellen, das eine ähnliche Rate an wahren Positiven und falschen Positiven über verschiedene Gruppen der sensiblen Variable 'RACE' hinweg aufweist.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3fairAITools.mitigateBias TABLE={name='hmeq_biased'}, response={name='BAD'}, sensitiveVariable={name='RACE'}, predictedVariables={{name='P_BAD1'}}, event='1', biasMetric='EQUALIZEDODDS', tolerance=0.01, learningRate=0.05, maxIters=20, trainProgram='
4proc decisiontree
5data={{table}} outmodel={{casout}};
6input DEBTINC LOAN / level=interval;
7target BAD / level=nominal;
8 
9run;
10';
11 
12RUN;
13 
14QUIT;
15 
Ergebnis :
Die Ausgabe umfasst eine Zusammenfassung des Minderungsprozesses, die die Entwicklung der 'Equalized Odds'-Metrik über die Iterationen zeigt. Das Endergebnis ist ein Entscheidungsbaummodell, das im Hinblick auf die Chancengleichheit optimiert ist und dessen Leistungs- und Fairness-Metriken in den Ausgabetabellen detailliert aufgeführt sind.

FAQ

Was ist der Zweck der `mitigateBias`-Aktion?
Was bewirkt der Parameter `biasMetric`?
Wofür wird der Parameter `trainProgram` verwendet?
Welche Funktion hat der `tolerance`-Parameter?
Welche Rolle spielt der Parameter `sensitiveVariable`?