activeLearn

alJoin

##set_activelearn

Description

L'action alJoin permet de joindre la table de données et la table d'annotations . Elle est principalement utilisée dans le processus d'apprentissage actif pour lier les nouvelles étiquettes fournies aux données non étiquetées existantes. Un vrai jeu d'enfant pour organiser vos données !

Syntaxe Officielle
proc cas;
activeLearn.alJoin /
annotatedTable={name="nom_table_annotations"}
casOut={name="nom_table_sortie"}
id="nom_colonne_id"
joinType="APPEND" | "FULL" | "INNER" | "LEFT" | "RIGHT"
logLevel=0
table={name="nom_table_donnees"};
run;
quit;

Paramètres Clés

Nom du paramètre Description
annotatedTable Spécifie le nom de la table en mémoire qui contient les données d'annotation pour l'opération de jointure.
casOut Spécifie le nom de la nouvelle table qui contient les résultats de la jointure.
id Spécifie la colonne servant d'identifiant unique, utilisée pour joindre la table de données et la table d'annotations.
joinType Spécifie le type de jointure entre les tables. Les choix possibles sont APPEND, FULL, INNER, LEFT et RIGHT. La valeur par défaut est LEFT.
logLevel Spécifie le niveau de détail des messages de progression envoyés au client (de 0 à 3). La valeur par défaut (0) n'envoie aucun message.
table Spécifie le nom de la table en mémoire qui contient les données principales pour l'opération de jointure.

Préparation des données

Création des données d'exemple

Ce code crée une table de données brutes et une table contenant quelques annotations pour illustrer la jointure.

1DATA mycas.donnees;
2 INPUT id var1 var2;
3 DATALINES;
4 1 10.5 20.1
5 2 15.2 25.4
6 3 20.8 30.9
7 4 25.1 35.5
8 ;
9RUN;
10DATA mycas.annotations;
11 INPUT id cible $;
12 DATALINES;
13 1 A
14 3 B
15 ;
16RUN;

Exemples d'utilisation

Jointure simple (LEFT join par défaut)

Cet exemple illustre comment effectuer une jointure classique entre les données et les annotations. Les données non annotées auront des valeurs manquantes pour la variable cible.

1PROC CAS;
2 activeLearn.alJoin /
3 TABLE={name="donnees"}
4 annotatedTable={name="annotations"}
5 id="id"
6 casOut={name="donnees_jointes", replace=true};
7RUN;
8QUIT;
Résultat Attendu :
Une nouvelle table 'donnees_jointes' est créée avec 4 lignes. Les lignes avec les id 1 et 3 possèderont leurs étiquettes (A et B), les autres (2 et 4) auront une valeur manquante.
Jointure interne (INNER) avec tous les paramètres optionnels

Dans ce scénario, on ne veut conserver que les données qui ont été annotées (via INNER join). On active également le logLevel à 2 pour afficher l'historique d'itération dans le journal, car il est toujours bon de garder un oeil sur ce que fait la machine %%https://go.documentation.sas.com/doc/en/pgmsascdc/v_069/casactml/cas-activelearn-aljoin.htm#SAS.cas-activelearn-aljoin-loglevel%% !

1PROC CAS;
2 activeLearn.alJoin /
3 TABLE={name="donnees", caslib="casuser"}
4 annotatedTable={name="annotations", caslib="casuser"}
5 id="id"
6 joinType="INNER"
7 logLevel=2
8 casOut={name="donnees_annotees_uniquement", replace=true};
9RUN;
10QUIT;
Résultat Attendu :
La table 'donnees_annotees_uniquement' est créée et ne contient que les 2 enregistrements (id 1 et 3) qui existent dans les deux tables. Des messages de progression détaillés seront affichés dans la log.