Les exemples utilisent des données générées (datalines) ou des tables SASHELP pour assurer l'autonomie de chaque bloc de code.
1 Bloc de code
PROC BINNING Data
Explication : Cet exemple crée une table de données simple 'auto_data' dans la bibliothèque CASUSER. Ensuite, la procédure BINNING est utilisée avec la méthode CUTPTS pour la variable 'Horsepower'. Des points de coupure à 180 et 200 sont spécifiés, créant ainsi trois catégories : Horsepower <= 180, 180 < Horsepower <= 200, et Horsepower > 200. La table de sortie 'binned_data' contiendra la nouvelle variable binée ainsi que les variables originales copiées. Les résultats sont ensuite affichés pour les premières observations et une fréquence est réalisée sur la variable binée pour vérifier le découpage.
Explication : Cet exemple illustre le découpage par points de coupure sur deux variables, 'SqFt' et 'YearBuilt', à partir d'une table de données 'house_prices'. L'option MONITOR=(SalePrice) est utilisée pour la variable 'SqFt' afin de suivre la variable 'SalePrice' dans les statistiques des bins, ce qui est utile pour l'évaluation de la performance du découpage. L'option OUTSTAT génère une table supplémentaire 'bin_stats' contenant les statistiques de chaque bin, offrant une vue détaillée des résultats du regroupement.
Explication : Cet exemple avancé utilise une table de données client avec des valeurs manquantes. Pour la variable 'Age', des points de coupure spécifiques (30, 40, 50) sont définis. Pour 'Income_Monthly', bien que des points de coupure soient fournis, l'option HANDLEMISSING=BIN indique que les valeurs manquantes doivent être traitées comme une catégorie de bin distincte. Cela montre une approche plus robuste pour le regroupement de données, en prenant en compte les scénarios réels de données incomplètes.
Copié !
/* Création d'une table CAS temporaire avec des valeurs manquantes */
options casdatalimit=1000;
caslib _all_ assign;
data casuser.customer_data;
input Age Income_Monthly Education_Level $ Credit_Score_PreBinning Gender $;
datalines;
30 3000 Bac NA . M
45 5000 Master NA 750 F
25 2000 HighSchool NA 600 M
NA 4000 PhD NA 800 F
35 NA Bachelor NA 700 M
50 6000 Master NA 850 F
28 2500 HighSchool NA 620 M
40 4500 Bachelor NA 720 F
NA 3500 PhD NA 780 M
32 3200 HighSchool NA 680 F
;
run;
/* Application du découpage avec gestion des manquantes et différentes numbin */
proc binning data=casuser.customer_data numbin=5 method=cutpts;
input Age / cutpts(30, 40, 50);
input Income_Monthly / numbin=3 cutpts(3000, 5000) handlemissing=bin;
output out=casuser.binned_customer_data copyvars=(Age Income_Monthly Credit_Score_PreBinning);
run;
/* Affichage des résultats pour les données binées */
proc print data=casuser.binned_customer_data;
run;
/* Vérification des fréquences pour les variables binées */
proc freq data=casuser.binned_customer_data;
tables Binned_Age Binned_Income_Monthly;
run;
1
/* Création d'une table CAS temporaire avec des valeurs manquantes */
2
options casdatalimit=1000;
3
caslib _all_ assign;
4
5
DATA casuser.customer_data;
6
INPUT Age Income_Monthly Education_Level $ Credit_Score_PreBinning Gender $;
7
DATALINES;
8
303000 Bac NA . M
9
455000 Master NA 750 F
10
252000 HighSchool NA 600 M
11
NA 4000 PhD NA 800 F
12
35 NA Bachelor NA 700 M
13
506000 Master NA 850 F
14
282500 HighSchool NA 620 M
15
404500 Bachelor NA 720 F
16
NA 3500 PhD NA 780 M
17
323200 HighSchool NA 680 F
18
;
19
RUN;
20
21
/* Application du découpage avec gestion des manquantes et différentes numbin */
/* Affichage des résultats pour les données binées */
29
PROC PRINTDATA=casuser.binned_customer_data;
30
RUN;
31
32
/* Vérification des fréquences pour les variables binées */
33
PROC FREQDATA=casuser.binned_customer_data;
34
tables Binned_Age Binned_Income_Monthly;
35
RUN;
36
4 Bloc de code
PROC BINNING
Explication : Cet exemple démontre l'intégration de PROC BINNING dans l'environnement SAS Viya/CAS. Il charge la table 'iris' de SASHELP dans une bibliothèque CAS. Ensuite, il applique le découpage par points de coupure sur 'PetalLength' et 'SepalWidth' et sauvegarde l'état du découpage (les règles de binning) dans une table 'binning_state' en utilisant l'option SAVE STATE. Cet 'état' peut être réutilisé pour appliquer exactement les mêmes règles de découpage (scoring) à de nouvelles données sans avoir à redéfinir les points de coupure. La table 'scored_iris' montre le résultat du binning sur les nouvelles données.
Copié !
/* Assurez-vous d'avoir une session CAS active et une caslib assignée */
options casdatalimit=1000;
caslib _all_ assign;
/* Charger des données SASHELP dans CAS pour l'exemple */
data casuser.iris;
set sashelp.iris;
run;
/* Application du découpage par points de coupure sur une table CAS */
proc binning data=casuser.iris numbin=3 method=cutpts;
input PetalLength / cutpts(1.5, 4.5);
input SepalWidth / cutpts(3.0, 3.5);
output out=casuser.binned_iris (replace=true) copyvars=(Species PetalLength SepalWidth);
save state out=casuser.binning_state (replace=true);
run;
/* Appliquer le découpage sur de nouvelles données (scoring) */
data casuser.new_iris_data;
input PetalLength SepalWidth Species $;
datalines;
1.2 3.8 Setosa
5.0 3.0 Virginica
4.0 2.5 Versicolor
;
run;
proc binning data=casuser.new_iris_data;
score state=casuser.binning_state out=casuser.scored_iris;
run;
proc print data=casuser.scored_iris;
run;
1
/* Assurez-vous d'avoir une session CAS active et une caslib assignée */
2
options casdatalimit=1000;
3
caslib _all_ assign;
4
5
/* Charger des données SASHELP dans CAS pour l'exemple */
6
DATA casuser.iris;
7
SET sashelp.iris;
8
RUN;
9
10
/* Application du découpage par points de coupure sur une table CAS */
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.