activeLearn

uncertaintySampling

##set_activelearn

Description

Effectue un apprentissage actif (active learning) en sélectionnant les observations à étiqueter en priorité. L'action utilise un échantillonnage basé sur l'incertitude (uncertainty), la pertinence (relevance) ou de manière aléatoire (random). Laissez la machine vous dire ce qu'elle ignore, ça vous évitera d'étiqueter toute la base à la main ! Sources :

Syntaxe Officielle
proc cas;
activeLearn.uncertaintySampling /
id="variable-name"
output={casOut={caslib="string", name="table-name", replace=true|false}, copyVars="ALL" | "ALL_MODEL"}
selectQuery={method="RANDOM" | "RELEVANCE" | "UNCERTAINTY", <method-specific-parameters>}
table={caslib="string", name="table-name"}
target="variable-name"
inputs={"var1", "var2"}
nominals={"var1", "var2"}
topK=64-bit-integer;
run;
quit;

Paramètres Clés

Nom du paramètre Description
id Spécifie la variable d'identifiant unique utilisée pour fusionner les étiquettes. Paramètre requis.
output Crée une table de données contenant les observations sélectionnées pour être interrogées (étiquetées). Paramètre requis.
selectQuery Spécifie la stratégie de requête à utiliser : échantillonnage aléatoire (RANDOM), par pertinence (RELEVANCE) ou par incertitude (UNCERTAINTY). Paramètre requis.
table Spécifie la table d'entrée contenant les données. Paramètre requis.
target Spécifie la variable cible binaire à utiliser pour l'analyse. Paramètre requis.
topK Spécifie le nombre maximal (top K) des observations à interroger (50 par défaut).
inputs Spécifie les variables d'entrée à utiliser pour l'analyse.
nominals Spécifie les variables nominales à utiliser pour l'analyse.

Préparation des données

Création de données de test avec cibles partiellement manquantes

Génère une table CAS avec un identifiant, des variables prédictives, une probabilité estimée et une cible binaire dont une partie des valeurs est non étiquetée (manquante).

1DATA mycas.donnees_apprentissage;
2 DO id = 1 to 1000;
3 var1 = rand('uniform');
4 var2 = rand('normal');
5 pred_prob = rand('uniform');
6 IF rand('uniform') > 0.8 THEN target = .;
7 ELSE target = (var1 + var2 > 0.5);
8 OUTPUT;
9 END;
10RUN;

Exemples d'utilisation

Échantillonnage par incertitude basé sur l'entropie

Utilise l'échantillonnage par incertitude (UNCERTAINTY) pour sélectionner les 10 observations (topK) où le modèle actuel est le moins confiant, en utilisant la métrique de l'entropie.

1PROC CAS;
2 activeLearn.uncertaintySampling /
3 TABLE={name="donnees_apprentissage"}
4 id="id"
5 target="target"
6 selectQuery={method="UNCERTAINTY", probVar="pred_prob", metric="ENTROPY"}
7 OUTPUT={casOut={name="donnees_a_etiqueter", replace=true}, copyVars="ALL"}
8 topK=10;
9QUIT;
Résultat Attendu :
Crée la table 'donnees_a_etiqueter' contenant les 10 observations nécessitant une intervention humaine prioritaire pour l'étiquetage.
Échantillonnage par pertinence avec noyau gaussien

Effectue un échantillonnage basé sur la pertinence (RELEVANCE) pour équilibrer la densité des données et l'incertitude. Le paramètre gamma contrôle la variance du noyau gaussien.

1PROC CAS;
2 activeLearn.uncertaintySampling /
3 TABLE={name="donnees_apprentissage"}
4 id="id"
5 target="target"
6 inputs={"var1", "var2"}
7 selectQuery={method="RELEVANCE", minNObs=500, gamma=20.0}
8 OUTPUT={casOut={name="donnees_pertinentes", replace=true}, copyVars="ALL_MODEL"}
9 topK=25;
10QUIT;
Résultat Attendu :
Une table en mémoire nommée 'donnees_pertinentes' est générée. Elle contient les 25 observations sélectionnées selon la stratégie de pertinence, incluant uniquement les variables utilisées dans la modélisation (ALL_MODEL).