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
biasMetricGibt die Art der zu verwendenden Bias-Messung an. Mögliche Werte sind 'DEMOGRAPHICPARITY', 'EQUALIZEDODDS', 'EQUALOPPORTUNITY' oder 'PREDICTIVEPARITY'.
boundGibt den Grenzwert für den Exponentiated Gradient Reduction Algorithmus an.
cutoffGibt den Schwellenwert für die Klassifizierung an, der zur Erstellung der Konfusionsmatrix verwendet wird.
eventGibt den formatierten Wert der Zielvariable an, der das interessierende Ereignis darstellt.
frequencyGibt die Variable an, die die Häufigkeitswerte enthält.
learningRateGibt die Schrittweite für die Aktualisierung im Exponentiated Gradient Reduction Algorithmus an.
maxItersGibt die maximale Anzahl von Iterationen für den Exponentiated Gradient Reduction Algorithmus an.
predictedVariablesGibt die Liste der Variablen an, die die Vorhersagen des Modells enthalten.
responseGibt die Zielvariable für das überwachte Lernen an.
responseLevelsGibt die Liste der formatierten Werte der Zielvariable an.
rocStepGibt die Schrittgröße für die ROC-Berechnungen (Receiver Operating Characteristic) an.
seedGibt den Startwert für den Zufallszahlengenerator an, um reproduzierbare Ergebnisse zu gewährleisten.
sensitiveVariableGibt die sensible Variable an, die in den Bias-Berechnungen verwendet wird.
tableGibt die Eingabedatentabelle für das Training an.
toleranceGibt die Toleranz für die Verletzung der Paritätsbeschränkung an.
trainProgramGibt den CASL-Code an, der zum Trainieren eines Modells innerhalb des Bias-Minderungsprozesses verwendet wird.
tuneBoundGibt 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`?