dataSciencePilot

detectInteractions

##set_datasciencepilot

Description

L'action fait partie du jeu d'actions (dataSciencePilot). Elle permet de détecter et de classer de manière automatique les interactions pertinentes entre les variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. prédictives vis-à-vis d'une variable cible. C'est l'outil parfait pour débusquer des relations complexes ou cachées dans vos données avant d'alimenter vos modèles de machine learningBranche de l'IA utilisant des algorithmes pour apprendre des modèles à partir de données. Il permet d'automatiser des prédictions ou des décisions sans programmation explicite de chaque règle.. Voyez-la comme le détective privé attitré de votre pipelineChaîne de flux de données automatisée intégrant prétraitement, sélection de variables et modèles supervisés pour comparer leurs performances et déployer le meilleur candidat dans SAS Viya. de données !

Syntaxe Officielle
proc cas;
dataSciencePilot.detectInteractions /
table={name="nom_table", caslib="ma_caslib"}
target="variable_cible"
inputs={"var1", "var2", ...}
nominals={"var_nominale1", ...}
event="valeur_cible_interet"
casOut={name="table_sortie", replace=true};
run;

Paramètres Clés

Nom du paramètre Description
table La table CAS d'entrée contenant les données que vous souhaitez analyser.
casOut Spécifie la table CAS de sortie où seront stockés les résultats des interactions détectées ainsi que leurs métriques de classement.
target La variable cible de l'analyse (la variable que vous chercherez in fine à prédire).
inputs La liste des variables prédictives à explorer. Si ce paramètre est omis, l'action teste toutes les variables de la table.
event Spécifie le niveau (la valeur) de la variable cible à modéliser. Très utile pour transformer une classification multi-classes en un problème binaire un-contre-tous.
rankMetric La métrique mathématique utilisée pour agréger et classer la force des interactions. Les options sont , ou .
maxNumInteractions Le nombre maximum de paires candidates d'interaction à retenir pour chaque projection. Idéal pour limiter le bruit et le temps de calcul (valeur par défaut : 1500).

Préparation des données

Création d'un jeu de données de test avec des interactions cachées

Nous allons générer une table de test où l'interaction précise entre x1 et x2 est le facteur principal pour définir la valeur de notre cible (target_bin). Voyons si l'action est assez maligne pour détecter ce complot !

1DATA public.mydata;
2 call streaminit(12345);
3 DO i = 1 to 1000;
4 x1 = rand('uniform');
5 x2 = rand('uniform');
6 x3 = rand('uniform');
7 x4 = rand('normal');
8 /* L'interaction pure entre x1 et x2 influence la cible */
9 target_score = (x1 * x2 > 0.25) + (x3 > 0.5) + rand('normal', 0, 0.1);
10 target_bin = ifc(target_score > 1, 'Oui', 'Non');
11 OUTPUT;
12 END;
13RUN;

Exemples d'utilisation

Détection basique et aveugle des interactions

On lance l'action avec les paramètres minimaux requis pour chercher des paires de variables fortement corrélées avec la modalité 'Oui' de notre cible.

1PROC CAS;
2 dataSciencePilot.detectInteractions /
3 TABLE={name="mydata", caslib="public"}
4 target="target_bin"
5 event="Oui"
6 casOut={name="interactions_trouvees", caslib="public", replace=true};
7RUN;
Résultat Attendu :
L'algorithme explore toutes les combinaisons de variables et génère la table 'interactions_trouvees'. Comme prévu, la paire x1-x2 y figurera en très bonne position.
Analyse ciblée avec ajustement de la métrique et filtrage

Une approche plus professionnelle : on restreint les variables d'entrée via %%inputs%%, on utilise la médiane (%%MEDIAN%%) pour éviter de biaiser le score par des valeurs extrêmes, et on filtre les probabilités de corrélation trop faibles.

1PROC CAS;
2 dataSciencePilot.detectInteractions /
3 TABLE={name="mydata", caslib="public"}
4 target="target_bin"
5 event="Oui"
6 inputs={"x1", "x2", "x3", "x4"}
7 nominals={"target_bin"}
8 rankMetric="MEDIAN"
9 maxNumInteractions=100
10 minInteractionProbability=0.05
11 casOut={name="interactions_fines", caslib="public", replace=true};
12RUN;
Résultat Attendu :
L'action évalue la force des interactions en utilisant la médiane. La table 'interactions_fines' ressortira plus concise (maximum 100 paires) en ayant expurgé toutes les corrélations anecdotiques inférieures à 5%.