Scénario de test & Cas d'usage
Erkennung und Minderung von Verzerrungen in KI-Modellen.
Entdecken Sie alle Aktionen von fairAIToolsErstellt eine Tabelle `Patientendaten` mit 5.000 Zeilen. Die Zielvariable ist `WIEDEREINWEISUNG`. Die sensible Variable `ETHNIE` enthält absichtlich fehlende Werte ('.') für ca. 10% der Datensätze. Auch andere Prädiktoren wie `ALTER` und `BEHANDLUNGSDAUER` enthalten fehlende Werte.
| 1 | DATA casuser.Patientendaten; |
| 2 | call streaminit(789); |
| 3 | DO PATIENT_ID = 1 to 5000; |
| 4 | IF rand('UNIFORM') < 0.1 THEN ETHNIE = ' '; |
| 5 | ELSE IF rand('UNIFORM') < 0.5 THEN ETHNIE = 'Gruppe_A'; |
| 6 | ELSE IF rand('UNIFORM') < 0.85 THEN ETHNIE = 'Gruppe_B'; |
| 7 | ELSE ETHNIE = 'Gruppe_C'; |
| 8 | |
| 9 | IF rand('UNIFORM') < 0.05 THEN ALTER = .; |
| 10 | ELSE ALTER = 40 + int(rand('UNIFORM')*45); |
| 11 | |
| 12 | IF rand('UNIFORM') < 0.08 THEN BEHANDLUNGSDAUER = .; |
| 13 | ELSE BEHANDLUNGSDAUER = 1 + int(rand('UNIFORM')*20); |
| 14 | |
| 15 | score = -3 + (ALTER/20) + (BEHANDLUNGSDAUER/5); |
| 16 | IF ETHNIE = 'Gruppe_C' THEN score = score + 0.9; |
| 17 | |
| 18 | prob = 1 / (1 + exp(-score)); |
| 19 | WIEDEREINWEISUNG = (rand('UNIFORM') < prob); |
| 20 | OUTPUT; |
| 21 | END; |
| 22 | RUN; |
| 1 | PROC CAS; |
| 2 | decisionTree.dtreeTrain |
| 3 | TABLE={name='Patientendaten'}, |
| 4 | target='WIEDEREINWEISUNG', |
| 5 | inputs={'ALTER', 'BEHANDLUNGSDAUER'}, |
| 6 | nominals={'ETHNIE', 'WIEDEREINWEISUNG'}, |
| 7 | savestate={name='dt_patienten_model', replace=true}; |
| 8 | RUN; |
| 1 | PROC CAS; |
| 2 | fairAITools.assessBias |
| 3 | TABLE={name='Patientendaten'}, |
| 4 | response={'name'='WIEDEREINWEISUNG'}, |
| 5 | sensitiveVariable={'name'='ETHNIE'}, |
| 6 | modelTable={name='dt_patienten_model'}, |
| 7 | predictedVariables={{name='P_WIEDEREINWEISUNG1'}, {name='P_WIEDEREINWEISUNG0'}}, |
| 8 | responseLevels={'1', '0'}, |
| 9 | event='1'; |
| 10 | RUN; |
| 1 | PROC CAS; |
| 2 | decisionTree.dtreeCode |
| 3 | modelTable={name='dt_patienten_model'} |
| 4 | code={casout={name='dt_patienten_code', replace=true}}; |
| 5 | |
| 6 | fairAITools.assessBias |
| 7 | TABLE={name='Patientendaten'}, |
| 8 | response={'name'='WIEDEREINWEISUNG'}, |
| 9 | sensitiveVariable={'name'='ETHNIE'}, |
| 10 | modelTable={name='dt_patienten_code'}, |
| 11 | modelTableType='DATASTEP', |
| 12 | predictedVariables={{name='P_WIEDEREINWEISUNG1'}, {name='P_WIEDEREINWEISUNG0'}}, |
| 13 | responseLevels={'1', '0'}, |
| 14 | event='1'; |
| 15 | RUN; |
Die Aktion wird ohne Fehler ausgeführt. Die Analyse der Ergebnistabellen zeigt, dass die Datensätze mit fehlenden Werten in der `ETHNIE`-Variable als separate Gruppe ('_MISSING_') behandelt werden, was eine Analyse dieser Fälle ermöglicht. Der dritte Schritt, der `modelTableType='DATASTEP'` verwendet, wird ebenfalls erfolgreich ausgeführt und bestätigt, dass die Aktion mit verschiedenen Modellformaten umgehen kann, selbst bei unvollständigen Daten.