dataSciencePilot

generateShadowFeatures

##set_datasciencepilot

Description

L'action generateShadowFeatures crée des 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. dites « ombres » (shadow features ) en permutant les valeurs des 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. d'origine. C'est une technique puissante, souvent utilisée dans des algorithmes comme Boruta, pour évaluer l'importance réelle des 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. : si une variable originale n'est pas plus performante que sa propre « ombre » aléatoire, c'est probablement du bruit ! C'est un peu comme comparer un athlète à son reflet dans un miroir déformant pour voir s'il court vraiment vite.

Syntaxe Officielle
dataSciencePilot.generateShadowFeatures /
table={name="nom_table", caslib="nom_caslib", where="expression"},
casOut={name="table_resultat", replace=true},
inputs={"var1", "var2"},
nominals={"var_cat"},
nProbes=5,
seed=12345

Paramètres Clés

Nom du paramètre Description
table Spécifie la table CAS d'entrée contenant les données à transformer.
casOut Spécifie la table CAS de sortie qui contiendra les données originales augmentées des caractéristiques ombres générées.
inputs Liste des variables pour lesquelles vous souhaitez générer des ombres. Si omis, toutes les variables sont utilisées.
nProbes Définit le nombre de versions permutées (ombres) à générer pour chaque variable d'entrée. La valeur par défaut est 5.
seed La graine pour le générateur de nombres aléatoires. Indispensable si vous voulez que vos ombres soient les mêmes à chaque exécution !
saveState Permet de sauvegarder le modèle de transformation (astore) pour l'appliquer plus tard à de nouvelles données.
probeMissing Si positionné à True, l'action reproduit le taux de valeurs manquantes observé dans la variable originale au sein de ses ombres.

Préparation des données

Création d'un jeu de données pour le test des ombres

On crée une table simple avec des variables numériques et une variable catégorielle pour tester la génération de caractéristiques.

1DATA casuser.test_shadow;
2 INPUT id x1 x2 target $;
3 DATALINES;
4 1 10 0.5 A
5 2 20 0.1 B
6 3 30 0.9 A
7 4 40 0.2 B
8 5 50 0.6 A
9 6 60 0.3 B
10 7 70 0.8 A
11 8 80 0.4 B
12 ;
13RUN;

Exemples d'utilisation

Génération basique d'ombres

Génère 5 ombres par défaut pour les variables x1 et x2.

1PROC CAS;
2 dataSciencePilot.generateShadowFeatures /
3 TABLE={name="test_shadow"},
4 casOut={name="shadow_out", replace=true},
5 inputs={"x1", "x2"};
6RUN;
Résultat Attendu :
Une nouvelle table shadow_out est créée contenant les colonnes d'origine plus x1_Shadow_1 à x1_Shadow_5 et x2_Shadow_1 à x2_Shadow_5.
Génération contrôlée avec sauvegarde du modèle

On limite à 2 ombres, on fixe la graine aléatoire pour la reproductibilité et on sauvegarde l'état pour une utilisation future (scoring).

1PROC CAS;
2 dataSciencePilot.generateShadowFeatures /
3 TABLE={name="test_shadow"},
4 casOut={name="shadow_detailed", replace=true},
5 inputs={"x1", "x2"},
6 nProbes=2,
7 seed=98765,
8 saveState={name="shadow_model", replace=true};
9 TABLE.columnInfo / TABLE="shadow_detailed";
10RUN;
Résultat Attendu :
La table shadow_detailed contient les variables originales et 2 ombres par variable. Le modèle shadow_model est enregistré dans la caslib pour être utilisé avec proc astore ou l'action set 'astore'.