mitigateBiasDecisionTree
Description
L'action (https://documentation.sas.com/doc/en/casactml/latest/cas-fairaitoolsAction set de SAS Viya dédiée à l'équité en IA. Elle permet de détecter et d'atténuer les biais algorithmiques dans les modèles afin de garantir des décisions justes et éthiques.-mitigatebiasdecisiontree.htm) permet d'atténuer les biais dans les modèles d'arbres de décision en utilisant l'algorithme de réduction de gradient exponentiel. Idéal pour s'assurer que votre IA est aussi équitable et impartiale qu'un arbitre suisse (mais en beaucoup plus rapide !). Elle s'appuie sur diverses métriques d'équité telles que la parité démographique, l'égalité des chances ou la parité prédictive.
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| mitigateOptions | Liste des paramètres permettant d'ajuster le comportement de l'algorithme d'atténuation. Ce bloc contient obligatoirement la variable sensible (sensitiveVariable) et accepte plusieurs autres options comme la métrique de biais (biasMetric). |
| trainOptions | Options d'entraînement transmises directement et nativement à l'action sous-jacente (https://documentation.sas.com/doc/en/pgmsascdc/v_069/casactml/cas-decisiontree-dtreetrain.htm). Ce paramètre est obligatoire. |
| pruneOptions | Options d'élagage optionnelles qui sont propagées à l'action (https://documentation.sas.com/doc/en/pgmsascdc/v_069/casactml/cas-decisiontree-dtreeprune.htm). |
| scoreOptions | Options de scoring passées à l'action score du paquet (https://documentation.sas.com/doc/en/pgmsascdc/v_069/casactml/cas-astore-score.htm). |
Préparation des données
Génération de la table de test
Création d'une table en mémoire avec une variable cible (BAD) et une variable sensible aléatoire (gender) pour illustrer le mécanisme d'atténuation.
| 1 | PROC CAS; SESSION casauto; dataStep.runCode / code="data hmeq; call streaminit(123); do i=1 to 1000; LOAN=rand('uniform')*100000; VALUE=rand('uniform')*200000; BAD=rand('bernoulli', 0.2); if rand('uniform') < 0.5 then gender='M'; else gender='F'; output; end; run;"; TABLE.promote / name="hmeq" drop=TRUE; RUN; QUIT; |
Exemples d'utilisation
Atténuation de biais standard
Entraînement d'un arbre de décision en corrigeant le modèle pour atteindre la parité démographique sur la variable de genre.
| 1 | PROC CAS; fairAITools.mitigateBiasDecisionTree / mitigateOptions={sensitiveVariable={name="gender"}, biasMetric="DEMOGRAPHICPARITY"}, trainOptions={TABLE={name="hmeq"}, target="BAD", inputs={"LOAN", "VALUE", "gender"}, nominals={"BAD", "gender"}}; RUN; QUIT; |
Résultat Attendu :
Atténuation de biais avec réglages avancés et tuning
Cet exemple détaille l'utilisation exhaustive des `mitigateOptions` (EQUALIZEDODDS, taux d'apprentissage, contrainte de tolérance) et active le tuning automatique de la borne (`tuneBound=TRUE`). Les options de score sont également précisées pour produire une table d'output.
| 1 | PROC CAS; fairAITools.mitigateBiasDecisionTree / mitigateOptions={biasMetric="EQUALIZEDODDS", bound=100, event="1", learningRate=0.01, logLevel=1, maxIters=15, predictedVariables={{name="P_BAD1"}, {name="P_BAD0"}}, responseLevels={"1", "0"}, seed=98765, sensitiveVariable={name="gender"}, tolerance=0.001, tuneBound=TRUE}, trainOptions={TABLE={name="hmeq"}, target="BAD", inputs={"LOAN", "VALUE", "gender"}, nominals={"BAD", "gender"}}, pruneOptions={}, scoreOptions={out={name="scored_data", replace=TRUE}}; RUN; QUIT; |