discretize
Description
L'action discretize effectue une discrétisation supervisée et non supervisée de 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.. C'est l'outil parfait pour transformer vos 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. continues en catégories (ou bacs), un peu comme si vous triiez vos chaussettes par taille avant de les ranger. C'est une étape de prétraitement incontournable pour simplifier les modèles de Machine LearningBranche de l'IA utilisant des algorithmes pour apprendre des modèles à partir de données. Il permet d'automatiser des prédictions ou des décisions sans programmation explicite de chaque règle. .
Paramètres Clés
Préparation des données
Création d'un jeu de données de test
Générons un petit jeu de données de patients avec leur taille et leur poids pour tester nos techniques de discrétisation.
| 1 | DATA casuser.patients; |
| 2 | INPUT id taille poids sexe $; |
| 3 | DATALINES; |
| 4 | 1 170 65 M |
| 5 | 2 180 80 M |
| 6 | 3 160 55 F |
| 7 | 4 175 70 M |
| 8 | 5 165 60 F |
| 9 | 6 190 90 M |
| 10 | 7 155 50 F |
| 11 | 8 185 85 M |
| 12 | ; |
| 13 | RUN; |
Exemples d'utilisation
Discrétisation basique en BUCKET (largeur égale)
On découpe la variable taille en 3 catégories de largeur identique. Une approche simple, efficace et sans prise de tête !
| 1 | PROC CAS; |
| 2 | dataPreprocess.discretize / |
| 3 | TABLE={name="patients", caslib="casuser"} |
| 4 | inputs={"taille", "poids"} |
| 5 | method="BUCKET" |
| 6 | arguments={nBinsArray=3} |
| 7 | casOut={name="patients_bucket", caslib="casuser", replace=true}; |
| 8 | QUIT; |
Résultat Attendu :
Discrétisation Quantile avec renommage personnalisé et détails des bacs
Ici on utilise la méthode QUANTILE (pour avoir autant d'individus dans chaque bac). On personnalise le préfixe de la variable de sortie et on sauvegarde les détails de coupe dans une table séparée pour pouvoir les réutiliser.
| 1 | PROC CAS; |
| 2 | dataPreprocess.discretize / |
| 3 | TABLE={name="patients", caslib="casuser"} |
| 4 | inputs={"taille"} |
| 5 | method="QUANTILE" |
| 6 | arguments={nBinsArray=4} |
| 7 | outVarsNamePrefix="Q_" |
| 8 | copyVars={"id", "sexe"} |
| 9 | casOut={name="patients_quantile", caslib="casuser", replace=true} |
| 10 | casOutBinDetails={name="bin_details", caslib="casuser", replace=true}; |
| 11 | QUIT; |