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.
| Parameter | Beschreibung |
|---|---|
| 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. |
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.
| 1 | |
| 2 | DATA casuser.hmeq_biased; |
| 3 | SET sampsio.hmeq; |
| 4 | IF race = '' THEN race = 'White'; |
| 5 | |
| 6 | RUN; |
| 7 |
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.
| 1 | |
| 2 | PROC CAS; |
| 3 | fairAITools.mitigateBias TABLE='hmeq_biased', response={name='BAD'}, sensitiveVariable={name='RACE'}, trainProgram=' |
| 4 | PROC LOGISTIC |
| 5 | DATA={{table}} OUTMODEL={{casout}}; |
| 6 | MODEL BAD(event="1")=DEBTINC; |
| 7 | |
| 8 | RUN; |
| 9 | '; |
| 10 | |
| 11 | RUN; |
| 12 | |
| 13 | QUIT; |
| 14 |
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.
| 1 | |
| 2 | PROC CAS; |
| 3 | fairAITools.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=' |
| 4 | proc decisiontree |
| 5 | data={{table}} outmodel={{casout}}; |
| 6 | input DEBTINC LOAN / level=interval; |
| 7 | target BAD / level=nominal; |
| 8 | |
| 9 | run; |
| 10 | '; |
| 11 | |
| 12 | RUN; |
| 13 | |
| 14 | QUIT; |
| 15 |