Veröffentlicht am :
Statistik CREATION_INTERNE

Cutpoint-Binning (Klassifizierung nach Schnittpunkten)

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Diese Funktion nutzt die BINNING-Prozedur, die Teil der visuellen Statistikprozeduren von SAS© Viya ist. Die CUTPTS-Methode ermöglicht die manuelle Definition von Schwellenwerten für jede Kategorie. Jedes Intervall wird durch eine Unter- und Obergrenze definiert. Der Prozess transformiert die ursprünglichen numerischen Werte in Bin-Identifikatoren. Die Prozedur kann auch deskriptive Statistiken für jedes Bin berechnen und Ausgabetabellen mit den binären Daten generieren. Die Ausführung erfolgt auf der Cloud Analytic Services (CAS)-Engine, was die Verarbeitung großer Datenmengen auf verteilte und leistungsstarke Weise ermöglicht.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden generierte Daten (Datalines) oder SASHELP-Tabellen, um die Autonomie jedes Codeblocks zu gewährleisten.

1 Codeblock
PROC BINNING Data
Erklärung :
Dieses Beispiel erstellt eine einfache Datentabelle 'auto_data' in der CASUSER-Bibliothek. Anschließend wird die BINNING-Prozedur mit der CUTPTS-Methode für die Variable 'Horsepower' verwendet. Schnittpunkte bei 180 und 200 werden angegeben, wodurch drei Kategorien entstehen: Horsepower <= 180, 180 < Horsepower <= 200 und Horsepower > 200. Die Ausgabetabelle 'binned_data' enthält die neue binäre Variable sowie die kopierten Originalvariablen. Die Ergebnisse werden dann für die ersten Beobachtungen angezeigt und eine Häufigkeitsanalyse wird für die binäre Variable durchgeführt, um die Klassifizierung zu überprüfen.
Kopiert!
1/* Création d'une table CAS temporaire */
2options casdatalimit=1000;
3caslib _all_ assign;
4 
5DATA casuser.auto_data;
6 INPUT MSRP Invoice EngineSize Horsepower Cylinders MPG_City MPG_Highway Weight Wheelbase LENGTH;
7 DATALINES;
825945 23722 3.5 210 6 18 26 3470 110 195
926445 24300 3.5 210 6 18 26 3470 110 195
1028495 26033 3.5 210 6 18 26 3470 110 195
1123720 21683 2.0 165 4 23 30 2778 101 179
1224595 22473 2.0 165 4 23 30 2778 101 179
1327270 24806 2.0 190 4 21 29 2833 104 184
1428170 25686 2.0 190 4 21 29 2833 104 184
1520000 18456 2.0 160 4 24 31 2901 106 187
1622000 20387 2.0 170 4 23 31 2946 106 187
1730000 27500 3.0 220 6 17 25 3450 109 188
18;
19RUN;
20 
21/* Application du découpage par points de coupure */
22PROC BINNING DATA=casuser.auto_data numbin=3 method=cutpts;
23 INPUT Horsepower / cutpts(180, 200);
24 OUTPUT out=casuser.binned_data copyvars=(MSRP Horsepower);
25RUN;
26 
27/* Affichage des résultats (facultatif) */
28PROC PRINT DATA=casuser.binned_data (obs=5);
29RUN;
30 
31PROC FREQ DATA=casuser.binned_data;
32 tables Binned_Horsepower;
33RUN;
34 
2 Codeblock
PROC BINNING Data
Erklärung :
Dieses Beispiel veranschaulicht die Klassifizierung nach Schnittpunkten für zwei Variablen, 'SqFt' und 'YearBuilt', aus einer Datentabelle 'house_prices'. Die Option MONITOR=(SalePrice) wird für die Variable 'SqFt' verwendet, um die Variable 'SalePrice' in den Bin-Statistiken zu verfolgen, was für die Bewertung der Klassifizierungsleistung nützlich ist. Die Option OUTSTAT generiert eine zusätzliche Tabelle 'bin_stats', die die Statistiken jedes Bins enthält und eine detaillierte Ansicht der Gruppierungsergebnisse bietet.
Kopiert!
1/* Création d'une table CAS temporaire */
2options casdatalimit=1000;
3caslib _all_ assign;
4 
5DATA casuser.house_prices;
6 INPUT SqFt Bedrooms Bathrooms LotSize YearBuilt SalePrice;
7 DATALINES;
81500 3 2 5000 1990 150000
91800 4 2.5 6000 1995 200000
101200 2 1 4000 1980 100000
112000 3 3 7000 2000 250000
121600 3 2 5500 1992 160000
131300 2 1.5 4500 1985 110000
142200 4 3.5 8000 2005 300000
151700 3 2 5800 1998 180000
161900 4 2 6500 2002 220000
171400 3 1 4800 1988 130000
18;
19RUN;
20 
21/* Application du découpage par points de coupure avec options */
22PROC BINNING DATA=casuser.house_prices numbin=4 method=cutpts;
23 INPUT SqFt / cutpts(1500, 1800, 2000) monitor=(SalePrice);
24 INPUT YearBuilt / cutpts(1990, 2000) monitor=(SalePrice);
25 OUTPUT out=casuser.binned_house_data copyvars=(SqFt YearBuilt SalePrice) outstat=casuser.bin_stats;
26RUN;
27 
28/* Affichage des détails des bins */
29PROC PRINT DATA=casuser.bin_stats;
30RUN;
31 
32/* Affichage des données binées */
33PROC PRINT DATA=casuser.binned_house_data (obs=5);
34RUN;
35 
3 Codeblock
PROC BINNING Data
Erklärung :
Dieses fortgeschrittene Beispiel verwendet eine Kundendatentabelle mit fehlenden Werten. Für die Variable 'Age' werden spezifische Schnittpunkte (30, 40, 50) definiert. Für 'Income_Monthly' gibt die Option HANDLEMISSING=BIN an, dass fehlende Werte als eine separate Bin-Kategorie behandelt werden sollen, obwohl Schnittpunkte angegeben sind. Dies zeigt einen robusteren Ansatz für die Datengruppierung unter Berücksichtigung realer Szenarien unvollständiger Daten.
Kopiert!
1/* Création d'une table CAS temporaire avec des valeurs manquantes */
2options casdatalimit=1000;
3caslib _all_ assign;
4 
5DATA casuser.customer_data;
6 INPUT Age Income_Monthly Education_Level $ Credit_Score_PreBinning Gender $;
7 DATALINES;
830 3000 Bac NA . M
945 5000 Master NA 750 F
1025 2000 HighSchool NA 600 M
11NA 4000 PhD NA 800 F
1235 NA Bachelor NA 700 M
1350 6000 Master NA 850 F
1428 2500 HighSchool NA 620 M
1540 4500 Bachelor NA 720 F
16NA 3500 PhD NA 780 M
1732 3200 HighSchool NA 680 F
18;
19RUN;
20 
21/* Application du découpage avec gestion des manquantes et différentes numbin */
22PROC BINNING DATA=casuser.customer_data numbin=5 method=cutpts;
23 INPUT Age / cutpts(30, 40, 50);
24 INPUT Income_Monthly / numbin=3 cutpts(3000, 5000) handlemissing=bin;
25 OUTPUT out=casuser.binned_customer_data copyvars=(Age Income_Monthly Credit_Score_PreBinning);
26RUN;
27 
28/* Affichage des résultats pour les données binées */
29PROC PRINT DATA=casuser.binned_customer_data;
30RUN;
31 
32/* Vérification des fréquences pour les variables binées */
33PROC FREQ DATA=casuser.binned_customer_data;
34 tables Binned_Age Binned_Income_Monthly;
35RUN;
36 
4 Codeblock
PROC BINNING
Erklärung :
Dieses Beispiel demonstriert die Integration von PROC BINNING in die SAS Viya/CAS-Umgebung. Es lädt die Tabelle 'iris' aus SASHELP in eine CAS-Bibliothek. Anschließend wendet es die Klassifizierung nach Schnittpunkten auf 'PetalLength' und 'SepalWidth' an und speichert den Klassifizierungsstatus (die Binning-Regeln) in einer Tabelle 'binning_state' mit der Option SAVE STATE. Dieser 'Status' kann wiederverwendet werden, um genau dieselben Klassifizierungsregeln (Scoring) auf neue Daten anzuwenden, ohne die Schnittpunkte neu definieren zu müssen. Die Tabelle 'scored_iris' zeigt das Ergebnis des Binnings für die neuen Daten.
Kopiert!
1/* Assurez-vous d'avoir une session CAS active et une caslib assignée */
2options casdatalimit=1000;
3caslib _all_ assign;
4 
5/* Charger des données SASHELP dans CAS pour l'exemple */
6DATA casuser.iris;
7 SET sashelp.iris;
8RUN;
9 
10/* Application du découpage par points de coupure sur une table CAS */
11PROC BINNING DATA=casuser.iris numbin=3 method=cutpts;
12 INPUT PetalLength / cutpts(1.5, 4.5);
13 INPUT SepalWidth / cutpts(3.0, 3.5);
14 OUTPUT out=casuser.binned_iris (replace=true) copyvars=(Species PetalLength SepalWidth);
15 save state out=casuser.binning_state (replace=true);
16RUN;
17 
18/* Appliquer le découpage sur de nouvelles données (scoring) */
19DATA casuser.new_iris_data;
20 INPUT PetalLength SepalWidth Species $;
21 DATALINES;
221.2 3.8 Setosa
235.0 3.0 Virginica
244.0 2.5 Versicolor
25;
26RUN;
27 
28PROC BINNING DATA=casuser.new_iris_data;
29 score state=casuser.binning_state out=casuser.scored_iris;
30RUN;
31 
32PROC PRINT DATA=casuser.scored_iris;
33RUN;
34 
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.