mbcScore
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 :
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`).
| 1 | PROC 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}; |
| 19 | QUIT; |
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.
| 1 | PROC 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"}; |
| 9 | QUIT; |
Résultat Attendu :
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.
| 1 | PROC 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"}; |
| 12 | QUIT; |