catTrans
Description
L'action catTrans est l'outil indispensable pour transformer vos variables catégoriellesLes variables catégorielles sont des données qualitatives divisées en groupes distincts (nominales ou ordinales), utilisées dans SAS Viya pour segmenter les analyses et définir des classes. avant de les passer à la moulinette de vos modèles. Elle permet de réduire le nombre de niveaux (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.) en regroupant intelligemment les catégories. Vous avez le choix entre des méthodes non supervisées (regrouper les niveaux 'rares' qui n'apparaissent pas assez souvent) et des méthodes supervisées qui s'appuient sur une variable cible (Target) pour créer des regroupements optimaux. Parmi les stars du show, on retrouve le Weight of EvidenceLe Weight of Evidence (WoE) mesure la capacité d'une modalité à distinguer les événements des non-événements, facilitant la transformation de variables avant une régression logistique. (WOE) , très utilisé en finance, ou les regroupements basés sur des arbres de décision. C'est la solution parfaite pour éviter que 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). ne s'emmêle les pinceaux avec trop de modalités inutiles.
Paramètres Clés
Préparation des données
Préparation de la table de démonstration
On charge la table CARS et on crée une variable cible binaire pour illustrer les méthodes supervisées.
| 1 | DATA mycas.cars; SET sashelp.cars; high_msrp = (msrp > 30000); RUN; |
Exemples d'utilisation
Nettoyage des niveaux rares
On regroupe les constructeurs (Make) qui apparaissent moins de 5 fois dans la table.
| 1 | PROC CAS; dataPreprocess.catTrans / TABLE={name="cars"}, inputs={{name="Make"}}, method="GROUPRARE", arguments={rareThreshold=5}, casOut={name="cars_cleaned", replace=true}; RUN; |
Résultat Attendu :
Transformation complète avec WOE et Statistiques
Exemple exhaustif utilisant la méthode WOE, avec gestion des valeurs manquantes, calcul des statistiques d'évaluation et génération du code de scoring.
| 1 | PROC CAS; dataPreprocess.catTrans / TABLE={name="cars", where="EngineSize > 2"}, inputs={{name="Make"}, {name="Type"}, {name="Origin"}}, targets={{name="high_msrp"}}, method="WOE", evaluationStats=true, arguments={maxNBins=10, minNBins=2, preprocessRare=true, rareThresholdPercent=5, overrides={binMissing=true, woeAdjust=0.5, ivFactor=2, minPerNObsInBin=5}}, casOut={name="cars_scored", replace=true}, casOutBinDetails={name="bin_details", replace=true}, casOutLevelBinMap={name="level_map", replace=true}, code={casOut={name="scoring_step", replace=true}}; RUN; |