?> assessBias - WeAreCAS
fairAITools

assessBias

Beschreibung

Die Aktion `assessBias` aus dem Aktionssatz `fairAITools` wird verwendet, um Fairness-Metriken für Vorhersagemodelle zu berechnen. Sie hilft bei der Bewertung, ob ein Modell unterschiedliche Ergebnisse für verschiedene Untergruppen der Daten liefert, die durch eine 'sensible Variable' (z.B. Geschlecht, Rasse) definiert sind. Diese Aktion ist entscheidend für die Entwicklung verantwortungsvoller KI-Systeme, indem sie potenzielle Verzerrungen in den Vorhersagen des Modells aufdeckt. Sie generiert eine Reihe von Metriken, die Vergleiche zwischen Gruppen ermöglichen, wie z.B. die durchschnittliche Vorhersage, die Falsch-Positiv-Rate und die Falsch-Negativ-Rate.

fairAITools.assessBias { code="string", cutoff=double, event="string", frequency={casvardesc}, modelTable={castable}, modelTables={{castable-1}, ...}, modelTableType="ASTORE"|"DATASTEP"|"NONE", nBins=64-bit-integer, predictedVariables={{casvardesc-1}, ...}, referenceLevel="string", response={casvardesc}, responseLevels={"string-1", ...}, rocStep=double, scoredTable={casouttable}, selectionDepth=64-bit-integer, sensitiveVariable={casvardesc}, table={castable}, weight={casvardesc} };
Einstellungen
ParameterBeschreibung
codeGibt den DATA-Step-Code an, der das Modell beschreibt, oder den DS2-Code, der zusammen mit einem Analysespeicher verwendet wird, den Sie im Parameter `modelTable` oder `modelTables` angeben.
cutoffGibt den Schwellenwert für die Konfusionsmatrix an.
eventGibt den formatierten Wert der Antwortvariable (Zielvariable) an, der das Ereignis von Interesse darstellt.
frequencyGibt die Variable an, die Häufigkeitswerte enthält.
modelTableGibt die Eingabetabelle an, die das zu erklärende Modell enthält. Diese Tabelle muss einen Analysespeicher oder DATA-Step-Scoring-Code enthalten.
modelTablesGibt die Eingabetabellen an, die das zu erklärende Modell enthalten. Diese Tabellen müssen Analysespeicher enthalten, und Sie müssen auch im `code`-Parameter den zugehörigen DS2-Code angeben.
modelTableTypeGibt den Typ des Scorings an, den die Modelltabelle enthält.
nBinsGibt die Anzahl der Bins an, die bei Lift-Berechnungen verwendet werden sollen.
predictedVariablesGibt die Liste der Variablen an, die die Vorhersagen des Modells enthalten. Die Reihenfolge der Variablen muss mit der Reihenfolge übereinstimmen, die Sie im `responseLevels`-Parameter angeben.
referenceLevelGibt das Referenzniveau für die sensible Variable an.
responseGibt die Antwortvariable (Zielvariable) an.
responseLevelsGibt die Liste der formatierten Werte der Antwortvariable (Zielvariable) an. Die Reihenfolge der Variablen muss mit der Reihenfolge übereinstimmen, die Sie im `predictedVariables`-Parameter angeben. Wenn der `event`-Parameter weggelassen wird, wird der erste formatierte Wert als Ereignis angenommen.
rocStepGibt die Schrittweite an, die für die Berechnungen der Receiver Operating Characteristic (ROC) verwendet werden soll.
scoredTableGibt die Ausgabetabelle an, die die bewerteten Ausgaben enthalten soll.
selectionDepthGibt die Tiefe an, die bei Lift-Berechnungen verwendet werden soll.
sensitiveVariableGibt die sensible Variable an, die in den Fairness-Berechnungen verwendet werden soll.
tableGibt die Eingabedatentabelle an.
weightGibt die Variable an, die Gewichtungswerte enthält.
Datenaufbereitung
Erstellung der Beispieldaten

Dieser Code erstellt eine Tabelle namens `hmeq_biased` in der CAS-Bibliothek `casuser`. Diese Tabelle enthält fiktive Kreditdaten, die zur Demonstration der Fairness-Bewertung verwendet werden. Sie enthält eine Zielvariable `BAD`, die angibt, ob ein Kreditnehmer ausgefallen ist, sowie eine sensible Variable `JOB`, die den Beruf des Kreditnehmers darstellt. Diese Daten werden verwendet, um ein Modell zu trainieren und anschließend auf Verzerrungen (Bias) zu prüfen.

data casuser.hmeq_biased;
  set sampsio.hmeq;
run;

Beispiele

Dieses Beispiel trainiert zuerst ein einfaches Entscheidungsbaummodell mit der Tabelle `hmeq_biased`. Das trainierte Modell wird in einer CAS-Tabelle als Analysespeicher (astore) gespeichert. Anschließend wird die Aktion `assessBias` aufgerufen, um die Fairness dieses Modells zu bewerten. Die Bewertung konzentriert sich auf die Variable `JOB` als sensible Variable, um zu prüfen, ob das Modell für verschiedene Berufsgruppen verzerrte Vorhersagen liefert.

SAS® / CAS-Code
Kopiert!
1PROC CAS;
2 decisionTree.dtreeTrain
3 TABLE={name='hmeq_biased'},
4 target='BAD',
5 inputs={'LOAN', 'MORTDUE', 'VALUE', 'YOJ', 'DEROG', 'DELINQ', 'CLAGE', 'NINQ', 'CLNO', 'DEBTINC'},
6 nominals={'BAD', 'REASON', 'JOB'},
7 savestate={name='dt_model', replace=true};
8 
9 fairAITools.assessBias
10 TABLE={name='hmeq_biased'},
11 response={'name'='BAD'},
12 sensitiveVariable={'name'='JOB'},
13 modelTable={name='dt_model'},
14 predictedVariables={{name='P_BAD1'}, {name='P_BAD0'}},
15 responseLevels={'1', '0'},
16 event='1';
17RUN;

Dieses Beispiel erweitert die grundlegende Fairness-Bewertung. Nachdem ein Entscheidungsbaummodell trainiert und als Analysespeicher gespeichert wurde, wird die Aktion `assessBias` mit zusätzlichen Parametern aufgerufen. Es wird `referenceLevel='ProfExe'` festgelegt, um alle Fairness-Metriken relativ zur Berufsgruppe 'Professional/Executive' zu berechnen. Außerdem wird ein `cutoff` von 0.4 verwendet, um die Klassifizierungsschwelle für die Vorhersagen anzupassen. Dies ermöglicht eine detailliertere Analyse, wie sich die Modellleistung und Fairness im Vergleich zu einer bestimmten Referenzgruppe und bei einem spezifischen Entscheidungsschwellenwert verhalten.

SAS® / CAS-Code
Kopiert!
1PROC CAS;
2 decisionTree.dtreeTrain
3 TABLE={name='hmeq_biased'},
4 target='BAD',
5 inputs={'LOAN', 'MORTDUE', 'VALUE', 'YOJ', 'DEROG', 'DELINQ', 'CLAGE', 'NINQ', 'CLNO', 'DEBTINC'},
6 nominals={'BAD', 'REASON', 'JOB'},
7 savestate={name='dt_model_detailed', replace=true};
8 
9 fairAITools.assessBias
10 TABLE={name='hmeq_biased'},
11 response={'name'='BAD'},
12 sensitiveVariable={'name'='JOB'},
13 modelTable={name='dt_model_detailed'},
14 predictedVariables={{name='P_BAD1'}, {name='P_BAD0'}},
15 responseLevels={'1', '0'},
16 event='1',
17 referenceLevel='ProfExe',
18 cutoff=0.4;
19RUN;

FAQ

Was ist der Zweck der Aktion 'assessBias'?
Welche Parameter sind für die Aktion 'assessBias' erforderlich?
Was gibt der Parameter 'modelTableType' an?
Wofür wird der Parameter 'referenceLevel' verwendet?
Kann ich eine Ausgabetabelle für die bewerteten Ergebnisse angeben?