mbc

mbcScore

##set_mbc

Description

L'action `mbcScore` (faisant partie du jeu d'actions `mbc` pour Model-Based ClusteringLe clustering est une technique d'apprentissage non supervisé regroupant des données similaires en segments homogènes afin d'identifier des structures cachées sans étiquettes préalables.) permet de scorerAction d'appliquer un modèle statistique à de nouvelles données pour calculer une probabilité ou une valeur prédite. C’est l’étape de déploiement transformant les entrées en prédictions actionnables. et de calculer les probabilités d'appartenance aux clusters pour de nouvelles données, en s'appuyant sur un modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). préalablement entraîné et sauvegardé (item storeFichier binaire SAS stockant les résultats de procédures (modèles, sélections, scores) pour un usage ultérieur, permettant d'appliquer un modèle entraîné à de nouvelles données via PROC SCORE.). C'est la phase de prédiction de votre modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). de mélange gaussien (GMMLe Gaussian Mixture Model (GMM) est un algorithme de clustering probabiliste qui suppose que les données sont issues d'une superposition de plusieurs distributions gaussiennes aux paramètres inconnus.). Une pincée de mathématiques, une louche de probabilités a posteriori, et boum : vos clusters sont servis ! Source officielle :

Syntaxe Officielle
proc cas;
mbc.mbcScore /
allstats=TRUE | FALSE,
casOut={caslib="chaine", name="nom_table", replace=TRUE | FALSE},
copyVars="ALL" | "ALL_NUMERIC" | {"var1", "var2"},
currClus="chaine_prefixe",
loglik="chaine_prefixe",
maxpost="chaine_prefixe",
nextClus="chaine_prefixe", /* défaut: "NEXT" */
pred="chaine_prefixe",
restore={name="nom_modele_stocke"}, /* Requis */
role="nom_variable_role",
table={name="table_entree"}; /* Requis */
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table de données d'entrée à analyser et à scorer. (Paramètre requis).
restore Spécifie le magasin d'éléments (item store) contenant le modèle de clustering préalablement entraîné à utiliser pour le scoring. (Paramètre requis).
casOut Spécifie les paramètres de la table de sortie qui contiendra les résultats du scoring (comme les assignations de cluster).
copyVars Permet de conserver des variables de la table d'entrée vers la table de sortie. Accepte 'ALL', 'ALL_NUMERIC' ou une liste explicite de noms de variables.
allstats Si défini sur True, génère et ajoute toutes les statistiques disponibles (probabilités, log-vraisemblance, etc.) à la table de sortie. Par défaut : False.
maxpost Spécifie un préfixe pour nommer la colonne qui contiendra le cluster ayant la probabilité a posteriori maximale (l'assignation finale).
currClus Spécifie un préfixe pour nommer les estimations de probabilité d'appartenance aux clusters calculées lors de l'étape E (Expectation).
loglik Spécifie un préfixe pour nommer les colonnes contenant les log-vraisemblances des clusters.

Préparation des données

Création d'un jeu de données et entraînement du modèle initial

Pour pouvoir scorer un modèle, nous devons d'abord créer des données et entraîner un modèle de clustering (via `mbc.mbcFit`) pour générer le fichier de sauvegarde (l'item store `mon_modele_mbc`).

1PROC CAS;
2 /* 1. Creation de donnees simulees 2D */
3 SOURCE myData;
4 id, x, y
5 1, 1.2, 1.1
6 2, 1.1, 1.0
7 3, 5.0, 5.2
8 4, 5.1, 5.1
9 5, 1.3, 0.9
10 6, 4.9, 5.3
11 ENDSOURCE;
12 TABLE.readcsv / text=myData, casout={name="mes_donnees", replace=true};
13 /* 2. Entrainement d'un modele mbc pour generer le store a scorer */
14 mbc.mbcFit /
15 TABLE={name="mes_donnees"},
16 inputs={"x", "y"},
17 nClusters=2,
18 store={name="mon_modele_mbc", replace=true};
19QUIT;

Exemples d'utilisation

Scoring basique d'un modèle de clustering

Cet exemple applique le modèle préalablement sauvegardé sur la table de données pour déterminer le cluster d'appartenance de chaque observation.

1PROC CAS;
2 mbc.mbcScore /
3 TABLE={name="mes_donnees"},
4 restore={name="mon_modele_mbc"},
5 casOut={name="mes_donnees_scorees", replace=true},
6 copyVars={"id", "x", "y"},
7 maxpost="ID_Cluster";
8 TABLE.fetch / TABLE={name="mes_donnees_scorees"};
9QUIT;
Résultat Attendu :
L'action génère la table 'mes_donnees_scorees' qui contiendra les colonnes d'origine 'id', 'x', 'y' (grâce à copyVars) et une nouvelle colonne commençant par le préfixe 'ID_Cluster' indiquant le cluster prédit (1 ou 2).
Scoring avancé avec probabilités et log-vraisemblance

Ici, nous demandons une sortie beaucoup plus riche en forçant l'export de toutes les statistiques via `allstats=true`, et nous nommons précisément les colonnes générées à l'aide des préfixes personnalisés.

1PROC CAS;
2 mbc.mbcScore /
3 TABLE={name="mes_donnees"},
4 restore={name="mon_modele_mbc"},
5 casOut={name="resultats_detailles", replace=true},
6 copyVars="ALL",
7 allstats=true,
8 currClus="Proba_Cluster_",
9 maxpost="Cluster_Final",
10 loglik="Log_Vraisemblance_";
11 TABLE.fetch / TABLE={name="resultats_detailles"};
12QUIT;
Résultat Attendu :
La table 'resultats_detailles' inclut la colonne d'affectation 'Cluster_Final', mais également les probabilités spécifiques d'appartenance pour chaque cluster (ex: 'Proba_Cluster_1', 'Proba_Cluster_2') ainsi que la log-vraisemblance pour affiner l'analyse de confiance des prédictions.