Scénario de test & Cas d'usage
Détection et atténuation des biais dans les modèles IA.
Découvrir toutes les actions de fairAIToolsCréation d'une table d'employés où certains enregistrements ont des valeurs manquantes pour le genre ou la probabilité de promotion prédite.
| 1 | DATA casuser.PROMOTION_CANDIDATES; |
| 2 | call streaminit(789); |
| 3 | DO i = 1 to 2000; |
| 4 | rand_gender = rand('UNIFORM'); |
| 5 | IF rand_gender < 0.48 THEN GENDER = 'M'; |
| 6 | ELSE IF rand_gender < 0.96 THEN GENDER = 'F'; |
| 7 | ELSE GENDER = ''; /* Valeur manquante */ |
| 8 | |
| 9 | P_PROMOTION = rand('UNIFORM'); |
| 10 | IF rand('UNIFORM') < 0.05 THEN P_PROMOTION = .; /* Valeur manquante numérique */ |
| 11 | |
| 12 | IF P_PROMOTION > 0.8 THEN IS_PROMOTED = 1; ELSE IS_PROMOTED = 0; |
| 13 | OUTPUT; |
| 14 | END; |
| 15 | RUN; |
| 1 | |
| 2 | PROC CASUTIL; |
| 3 | load |
| 4 | DATA=casuser.PROMOTION_CANDIDATES outcaslib='casuser' replace; |
| 5 | QUIT; |
| 6 |
| 1 | PROC CAS; |
| 2 | fairAITools.assessBias |
| 3 | TABLE={name='PROMOTION_CANDIDATES', caslib='casuser'}, |
| 4 | response={name='IS_PROMOTED'}, |
| 5 | sensitiveVariable={name='GENDER'}, |
| 6 | predictedVariables={{name='P_PROMOTION'}}, |
| 7 | event='1', |
| 8 | cutoff=0.6; |
| 9 | RUN; |
| 10 | QUIT; |
L'action doit s'exécuter sans erreur en ignorant automatiquement les enregistrements où la variable sensible ('GENDER') ou la variable prédite ('P_PROMOTION') sont manquantes. Les métriques de biais calculées ne doivent concerner que les groupes 'M' et 'F' pour lesquels des données complètes sont disponibles, démontrant la robustesse de l'action face à des données imparfaites.