fairAITools

mitigateBiasDecisionTree

##set_fairaitools

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.

Syntaxe Officielle
proc cas;
fairAITools.mitigateBiasDecisionTree /
mitigateOptions={
biasMetric="PREDICTIVEPARITY",
bound=100,
event="1",
learningRate=0.01,
logLevel=1,
maxIters=10,
predictedVariables={{name="P_BAD1"}, {name="P_BAD0"}},
responseLevels={"1", "0"},
seed=12345,
sensitiveVariable={name="gender"},
tolerance=0.005,
tuneBound=FALSE
}
trainOptions={
table={name="mydata"},
target="BAD",
inputs={"LOAN", "MORTDUE", "VALUE", "gender"},
nominals={"BAD", "gender"}
}
pruneOptions={}
scoreOptions={};
run;
quit;

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.

1PROC 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.

1PROC 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 :
Le modèle final est retourné après exécution de l'algorithme de réduction du gradient exponentiel, réduisant la disparité de prédiction selon le genre.
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.

1PROC 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;
Résultat Attendu :
L'action cherche la borne (bound) optimale pour minimiser le biais sous la métrique EQUALIZEDODDS tout en préservant la précision, puis génère la table de résultats `scored_data` via l'Analytic Store Scoring.