mbc

mbcFit

Description

L'action `mbcFit` effectue un clustering basé sur un modèle en utilisant l'algorithme EM (Espérance-Maximisation). Elle est conçue pour les données où les observations peuvent être regroupées en clusters, chaque cluster étant modélisé par une distribution Gaussienne. L'action détermine les paramètres de ces distributions (moyennes, covariances) ainsi que les probabilités d'appartenance de chaque observation à chaque cluster.

proc cas; mbc.mbcFit / table={name='<nom_table_entree>'} model={ effects={{vars={'<variable_1>', '<variable_2>'}}} } nClusters=<nombre_clusters> covStruct='<structure_covariance>' criterion='<critere_selection>' store={name='<nom_magasin_modele>', replace=true} output={casOut={name='<nom_table_sortie>', replace=true}, copyVars={'<col_a_copier>'}}; run; quit;
Paramètres
ParamètreDescription
tableSpécifie la table de données d'entrée CAS à analyser.
modelDéfinit les variables à utiliser pour l'analyse de clustering.
nClustersSpécifie le nombre de clusters Gaussiens à rechercher. Peut être un entier unique ou une liste d'entiers à tester (ex: {2, 3, 4}).
covStructSpécifie le ou les modèles de structure de covariance à ajuster. Des valeurs communes sont 'EEE' (sphérique), 'VVI' (diagonale, volumes inégaux), 'VVV' (ellipsoïdale). 'ALL' teste toutes les structures possibles.
criterionSpécifie le critère d'information pour sélectionner le meilleur modèle parmi les combinaisons testées. Les options incluent 'AIC', 'AICC', et 'BIC' (par défaut).
maxIterDéfinit le nombre maximum d'itérations pour l'algorithme EM. La valeur par défaut est 500.
noiseSpécifie si un cluster de bruit (pour les outliers) doit être inclus dans le modèle. Les valeurs peuvent être 'Y' (Oui) ou 'N' (Non).
storeSauvegarde le modèle ajusté final dans un item store CAS pour une utilisation ultérieure, par exemple pour le scoring avec l'action `mbcScore`.
outputCrée une table de sortie contenant les probabilités d'appartenance de chaque observation aux clusters, ainsi que d'autres statistiques.
seedSpécifie la graine pour le générateur de nombres aléatoires afin d'assurer la reproductibilité, notamment pour l'initialisation.
techniqueSpécifie la technique d'espérance-maximisation à utiliser. 'EM' est la technique standard, tandis que 'CEM' (Classification EM) effectue une étape de classification dure à chaque itération.
topModelsSpécifie le nombre de meilleurs modèles à afficher dans la table de résumé 'ModelInfo' après la sélection de modèle.
Préparation des Données Voir la fiche de ce code dataprep
Création de la table de données pour le clustering

Cet exemple charge le jeu de données classique 'Iris' disponible dans `sashelp` vers une table en mémoire dans CAS nommée 'iris'. Cette table sera utilisée pour l'analyse de clustering.

Copié !
1DATA mycas.iris; SET sashelp.iris; RUN;

Exemples

Effectue un clustering sur la table 'iris' en recherchant 3 clusters. La structure de covariance est fixée à 'VVI' (diagonale, volumes inégaux, orientation alignée aux axes). Le modèle est stocké pour le scoring.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 mbc.mbcFit /
3 TABLE={name='iris'},
4 model={effects={{vars={'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'}}}},
5 nClusters=3,
6 covStruct='VVI',
7 store={name='mbc_model_store', replace=true},
8 OUTPUT={casOut={name='iris_scored', replace=true}, copyVars={'Species'}};
9RUN;
10QUIT;
Résultat :
Une table de sortie nommée 'iris_scored' est créée dans la caslib active, contenant les variables originales plus les probabilités d'appartenance à chaque cluster pour chaque observation. Le modèle ajusté est sauvegardé dans l'item store 'mbc_model_store'.

Teste plusieurs configurations pour trouver le meilleur modèle de clustering. L'action évalue le nombre de clusters de 2 à 5, plusieurs structures de covariance ('EEE', 'VVI', 'EVE'), et la présence ou non d'un cluster de bruit. Le critère BIC est utilisé pour classer et sélectionner le meilleur modèle.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 mbc.mbcFit /
3 TABLE={name='iris'},
4 model={effects={{vars={'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'}}}},
5 nClusters={2, 3, 4, 5},
6 covStruct={'EEE', 'VVI', 'EVE'},
7 noise='Y',
8 criterion='BIC',
9 topModels=5,
10 itHist='SUMMARY',
11 store={name='mbc_best_model', replace=true},
12 OUTPUT={casOut={name='iris_scored_best', replace=true}, copyVars={'Species'}};
13RUN;
14QUIT;
Résultat :
L'action génère plusieurs tables de résultats. La table 'ModelInfo' répertorie les 5 meilleurs modèles classés par le critère BIC. Le modèle le plus performant est automatiquement sauvegardé dans l'item store 'mbc_best_model'. Une table 'iris_scored_best' est également créée avec les résultats de scoring du meilleur modèle.

FAQ

Quelle est la fonction principale de l'action mbcFit dans SAS Viya ?
Quelles sont les méthodes d'initialisation disponibles pour l'algorithme dans mbcFit ?
Comment l'action mbcFit sélectionne-t-elle le meilleur modèle ?
Peut-on inclure un cluster de bruit dans l'analyse avec mbcFit ?
Quels sont les différents modèles de covariance (covStruct) supportés par mbcFit ?
Comment peut-on sauvegarder le modèle entraîné pour une utilisation ultérieure ?