lpca
Description
L'action lpca (Logistic Principal Component AnalysisMéthode de réduction de dimension pour données binaires. Elle généralise l'ACP en utilisant la log-vraisemblance pour projeter des variables qualitatives dans un espace latent continu réduit.) est votre outil par excellence pour réduire la dimensionnalité des variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. nominales. Si vous avez trop de catégories et que votre algorithme menace de faire une indigestion, cette action compresse les informations intelligemment ! Fini les maux de tête liés à une trop haute cardinalitéLa cardinalité représente le nombre de valeurs distinctes contenues dans une colonne. Une cardinalité élevée indique une grande diversité de données, influençant le choix des modèles dans CAS., l'action lpca permet d'obtenir un jeu de données svelte, prêt pour une modélisationProcessus de création de structures mathématiques ou statistiques sur SAS Viya pour prédire des comportements, classifier des données ou identifier des tendances à partir de jeux de données CAS. ultra-rapide.
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| table | Spécifie la table d'entrée contenant les données. Obligatoire, car sans données, difficile de faire des mathématiques ! |
| dimensions | Définit le nombre de variables réduites (composantes principales) que vous souhaitez extraire. |
| inputs | La liste des variables à utiliser pour l'analyse de réduction de dimension. |
| nominals | Spécifie explicitement quelles variables parmi vos inputs sont de nature nominale (catégorielle). |
| m | Une valeur finie et positive pour approximer les limites infinies de la fonction logit (par défaut : 4). |
| maxIter | Nombre maximum d'itérations pour l'algorithme. Au-delà, l'algorithme s'arrête, même s'il n'a pas fini son café (par défaut : 100). |
| epsilon | La tolérance utilisée pour déterminer la convergence de l'algorithme itératif (par défaut : 0.0001). |
| prefix | Le petit préfixe ajouté au nom des nouvelles variables créées (par défaut : 'rv' pour reduced variable, donnant rv1, rv2, etc.). |
| id | Les variables d'identification à conserver et à transférer vers votre table de sortie. |
| freq | Nom de la variable contenant la fréquence de chaque observation. |
| display | Permet de filtrer quelles tables de résultats seront affichées à l'écran. |
| output | Paramètres pour créer la table de sortie contenant les nouvelles variables réduites calculées pour les données d'entraînement. |
| outputTables | Liste les noms des tables de résultats (statistiques, métadonnées) à sauvegarder physiquement en tant que tables CAS. |
| saveState | Spécifie la table de sortie (Astore) dans laquelle sauvegarder le modèle de réduction. Indispensable pour scorer de futures données sans devoir tout ré-apprendre de zéro. |
Préparation des données
Création d'un jeu de données de test
Générons quelques données factices comportant plusieurs variables catégorielles (des lettres) pour observer la magie de la réduction de dimension.
| 1 | DATA mycas.achats; |
| 2 | call streaminit(123); |
| 3 | DO id = 1 to 1000; |
| 4 | categorie = byte(int(rand('uniform') * 10) + 65); |
| 5 | methode_paiement = byte(int(rand('uniform') * 4) + 87); |
| 6 | region = byte(int(rand('uniform') * 5) + 75); |
| 7 | frequence = int(rand('uniform') * 10) + 1; |
| 8 | OUTPUT; |
| 9 | END; |
| 10 | RUN; |
Exemples d'utilisation
Réduction de dimensionnalité basique
Un appel simple utilisant les paramètres obligatoires et recommandés pour réduire nos variables nominales en 2 dimensions.
| 1 | PROC CAS; |
| 2 | nominalVarsDimReduction.lpca / |
| 3 | TABLE={name="achats"} |
| 4 | inputs={"categorie", "methode_paiement", "region"} |
| 5 | nominals={"categorie", "methode_paiement", "region"} |
| 6 | dimensions=2 |
| 7 | OUTPUT={casOut={name="achats_reduits", replace=true}}; |
| 8 | QUIT; |
Résultat Attendu :
Réduction avancée avec tuning complet et sauvegarde Astore
Dans cet exemple pour les pros, nous paramétrons finement la convergence, personnalisons le préfixe de sortie, incluons une variable de fréquence et de regroupement, et surtout, nous sauvegardons le modèle en utilisant le paramètre saveState%%https://go.documentation.sas.com/doc/en/pgmsascdc/v_069/casactml/compg-casouttable-15param.htm%% pour pouvoir l'appliquer plus tard avec l'action astore.
| 1 | PROC CAS; |
| 2 | nominalVarsDimReduction.lpca / |
| 3 | TABLE={name="achats", groupBy={"region"}, singlePass=false} |
| 4 | inputs={"categorie", "methode_paiement"} |
| 5 | nominals={"categorie", "methode_paiement"} |
| 6 | freq="frequence" |
| 7 | dimensions=3 |
| 8 | m=5.0 |
| 9 | maxIter=150 |
| 10 | epsilon=1e-5 |
| 11 | prefix="comp_prin_" |
| 12 | id={"id"} |
| 13 | display={names={"ModelInfo", "ConvergenceStatus"}} |
| 14 | outputTables={names={ModelInfo="InfoModele"}} |
| 15 | OUTPUT={casOut={name="achats_reduits_pro", replace=true}, copyVars={"ALL"}} |
| 16 | saveState={name="modele_lpca_astore", replace=true}; |
| 17 | QUIT; |