fairAITools

assessBias

L'essentiel
Auf einen Blick
Um die Integrität von KI-Modellen in SAS Viya zu gewährleisten, bietet die Aktion assessBias aus den fairAITools eine spezialisierte Umgebung zur Messung algorithmischer Gerechtigkeit. Diese Funktion ermöglicht es Data Engineers, statistische Abweichungen zwischen verschiedenen Nutzergruppen präzise zu identifizieren und zu dokumentieren. In einer Ära, in der verantwortungsvolle KI-Governance an Bedeutung gewinnt, ist die Beherrschung dieser Metriken für den produktiven Einsatz unerlässlich. Wir haben in diesem Bereich die wichtigsten Informationen und Antworten auf häufig gestellte Fragen zusammengestellt, um Sie bei der praktischen Anwendung dieser Analyse-Tools zu unterstützen.

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
code Gibt 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.
cutoff Gibt den Schwellenwert für die Konfusionsmatrix an.
event Gibt den formatierten Wert der Antwortvariable (Zielvariable) an, der das Ereignis von Interesse darstellt.
frequency Gibt die Variable an, die Häufigkeitswerte enthält.
modelTable Gibt die Eingabetabelle an, die das zu erklärende Modell enthält. Diese Tabelle muss einen Analysespeicher oder DATA-Step-Scoring-Code enthalten.
modelTables Gibt 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.
modelTableType Gibt den Typ des Scorings an, den die Modelltabelle enthält.
nBins Gibt die Anzahl der Bins an, die bei Lift-Berechnungen verwendet werden sollen.
predictedVariables Gibt 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.
referenceLevel Gibt das Referenzniveau für die sensible Variable an.
response Gibt die Antwortvariable (Zielvariable) an.
responseLevels Gibt 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.
rocStep Gibt die Schrittweite an, die für die Berechnungen der Receiver Operating Characteristic (ROC) verwendet werden soll.
scoredTable Gibt die Ausgabetabelle an, die die bewerteten Ausgaben enthalten soll.
selectionDepth Gibt die Tiefe an, die bei Lift-Berechnungen verwendet werden soll.
sensitiveVariable Gibt die sensible Variable an, die in den Fairness-Berechnungen verwendet werden soll.
table Gibt die Eingabedatentabelle an.
weight Gibt die Variable an, die Gewichtungswerte enthält.
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.

Kopiert!
1DATA casuser.hmeq_biased;
2 SET sampsio.hmeq;
3RUN;

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 Code wartet auf Validierung durch die Community
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 Code wartet auf Validierung durch die Community
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?

Zugehörige Szenarien

Anwendungsfall
Standard-Bias-Analyse für ein Kredit-Scoring-Modell

Eine Bank möchte sicherstellen, dass ihr neues Modell zur Kreditgenehmigung nicht aufgrund des Familienstandes (`EHESTATUS`) der Antragsteller voreingenommen ist. Sie müssen die...

Anwendungsfall
Bias-Bewertung bei großem Volumen für ein Versicherungsbetrugsmodell

Ein großes Versicherungsunternehmen verarbeitet täglich Millionen von Schadensmeldungen. Es muss ein neues Modell zur Betrugserkennung auf potenzielle Voreingenommenheit gegenüb...

Anwendungsfall
Grenzfall-Tests für ein Modell zur Vorhersage von Krankenhauswiedereinweisungen mit fehlenden Daten

Ein Krankenhaus analysiert ein Modell, das das Risiko einer Wiederaufnahme von Patienten vorhersagt. Der für das Training verwendete Datensatz weist bekannte Datenqualitätsprobl...