Scénario de test & Cas d'usage
Erkennung und Minderung von Verzerrungen in KI-Modellen.
Entdecken Sie alle Aktionen von fairAIToolsErstellt eine simulierte Kundentabelle `Kreditantraege` mit 10.000 Zeilen. Die Tabelle enthält demografische und finanzielle Informationen, eine Zielvariable `KREDIT_GENEHMIGT` und eine sensible Variable `EHESTATUS` mit drei Stufen: 'Ledig', 'Verheiratet', 'Geschieden'.
| 1 | DATA casuser.Kreditantraege(keep=KUNDE_ID KREDIT_GENEHMIGT EHESTATUS ALTER EINKOMMEN KREDITHOEHE LAUFZEIT); |
| 2 | call streaminit(123); |
| 3 | DO KUNDE_ID = 1 to 10000; |
| 4 | ALTER = 20 + int(rand('UNIFORM')*50); |
| 5 | EINKOMMEN = 30000 + rand('NORMAL', 15000, 5000); |
| 6 | KREDITHOEHE = 5000 + rand('UNIFORM')*45000; |
| 7 | LAUFZEIT = 12 + 12*int(rand('UNIFORM')*7); |
| 8 | |
| 9 | seed = rand('UNIFORM'); |
| 10 | IF seed < 0.4 THEN EHESTATUS = 'Ledig'; |
| 11 | ELSE IF seed < 0.85 THEN EHESTATUS = 'Verheiratet'; |
| 12 | ELSE EHESTATUS = 'Geschieden'; |
| 13 | |
| 14 | score = -2.5 + (ALTER/10) + (EINKOMMEN/20000) - (KREDITHOEHE/30000); |
| 15 | IF EHESTATUS = 'Ledig' THEN score = score - 0.5; /* Bias einführen */ |
| 16 | IF EHESTATUS = 'Geschieden' THEN score = score + 0.2; |
| 17 | |
| 18 | prob = 1 / (1 + exp(-score)); |
| 19 | KREDIT_GENEHMIGT = (rand('UNIFORM') < prob); |
| 20 | OUTPUT; |
| 21 | END; |
| 22 | RUN; |
| 1 | PROC CAS; |
| 2 | SIMPLE.gbtreeTrain |
| 3 | TABLE={name='Kreditantraege'}, |
| 4 | target='KREDIT_GENEHMIGT', |
| 5 | inputs={'ALTER', 'EINKOMMEN', 'KREDITHOEHE', 'LAUFZEIT'}, |
| 6 | nominals={'EHESTATUS', 'KREDIT_GENEHMIGT'}, |
| 7 | savestate={name='gbtree_kredit_model', replace=true}; |
| 8 | RUN; |
| 1 | PROC CAS; |
| 2 | fairAITools.assessBias |
| 3 | TABLE={name='Kreditantraege'}, |
| 4 | response={'name'='KREDIT_GENEHMIGT'}, |
| 5 | sensitiveVariable={'name'='EHESTATUS'}, |
| 6 | modelTable={name='gbtree_kredit_model'}, |
| 7 | predictedVariables={{name='P_KREDIT_GENEHMIGT1'}, {name='P_KREDIT_GENEHMIGT0'}}, |
| 8 | responseLevels={'1', '0'}, |
| 9 | event='1', |
| 10 | referenceLevel='Verheiratet', |
| 11 | cutoff=0.5, |
| 12 | scoredTable={name='scored_kredit', replace=true}; |
| 13 | RUN; |
Die Aktion generiert erfolgreich mehrere Ergebnistabellen (Bias-Metriken, ROC, Lift usw.). Diese Tabellen ermöglichen einen direkten Vergleich der Modellleistung für ledige, verheiratete und geschiedene Antragsteller im Verhältnis zur Referenzgruppe 'Verheiratet'. Die Ausgabetabelle `scored_kredit` wird erstellt und enthält die Vorhersagen für jeden Antragsteller.