Die BINNING-Prozedur wird verwendet, um Variablen zu diskretisieren und Wertgruppen, sogenannte 'Bins', zu erstellen. Das Bucket Binning teilt die Daten in eine gleiche Anzahl von Beobachtungen pro Bin auf. Für jedes Bin wird das Evidenzgewicht (WOE) berechnet, das die Stärke der Beziehung zwischen einem Prädiktor und der Zielvariablen misst. Ein positiver WOE-Wert zeigt an, dass die Wahrscheinlichkeit des Zielereignisses in diesem Bin höher ist, während ein negativer Wert eine geringere Wahrscheinlichkeit anzeigt. Der Informationswert (IV) ist eine gewichtete Summe der WOE für alle Kategorien einer Variablen und dient zur Bewertung der Nützlichkeit einer Variablen für die Zielvorhersage. Diese Methode ist entscheidend, um Ausreißer und Kollinearität zu handhaben und die Modellleistung zu verbessern. Die verarbeiteten Variablen müssen im CAS-Speicher geladen sein, damit die Prozedur funktioniert.
Datenanalyse
Type : CREATION_INTERNE
Die Beispiele verwenden generierte Daten (Datalines), um ihre Autonomie zu gewährleisten.
1 Codeblock
PROC BINNING Data
Erklärung : Dieses Beispiel veranschaulicht die einfachste Verwendung der BINNING-Prozedur, um ein Bucket Binning für die Variable `x1` mit 5 Bins durchzuführen und das Evidenzgewicht (WOE) in Bezug auf die Zielvariable `y` (wobei 'y' das Ereignis ist) zu berechnen. Die Daten werden direkt mit `datalines` erstellt und über die Bibliothek `mylib` in den CAS-Speicher geladen.
Kopiert!
cas mylib; /* S'assurer que la bibliothèque 'mylib' est définie pour CAS */
libname mylib cas;
data mylib.data_basique;
input x0 x1 x2 y $;
datalines;
2 10 7 n
2 12 6 y
3 11 1 n
2 13 7 y
2 10 4 n
3 16 7 n
1 14 4 y
2 15 6 y
1 16 4 n
2 13 2 n
;
run;
proc binning data=mylib.data_basique numbin=5 woe;
input x1;
target y / event="y";
output out=mylib.output_basique;
run;
1
cas mylib; /* S'assurer que la bibliothèque 'mylib' est définie pour CAS */
2
LIBNAME mylib cas;
3
4
DATA mylib.data_basique;
5
INPUT x0 x1 x2 y $;
6
DATALINES;
7
2107 n
8
2126 y
9
3111 n
10
2137 y
11
2104 n
12
3167 n
13
1144 y
14
2156 y
15
1164 n
16
2132 n
17
;
18
RUN;
19
20
PROC BINNINGDATA=mylib.data_basique numbin=5 woe;
21
INPUT x1;
22
target y / event="y";
23
OUTPUT out=mylib.output_basique;
24
RUN;
2 Codeblock
PROC BINNING Data
Erklärung : Dieses Beispiel erweitert den Basisfall, indem es das Bucket Binning auf mehrere Variablen (`x0` und `x1`) anwendet, indem explizit `binmethod=bucket` angegeben wird. Es berechnet auch das WOE. Zwei Ausgabetabellen werden generiert: `out` für die Binning-Details und `outwoe` für die WOE-Mappings. Dies ist nützlich, um die Transformationen zu überprüfen und diese Mappings potenziell auf neue Daten anzuwenden.
Kopiert!
cas mylib; /* S'assurer que la bibliothèque 'mylib' est définie pour CAS */
libname mylib cas;
data mylib.data_intermediaire;
input x0 x1 x2 y $ freq;
datalines;
2 10 7 n 2
2 12 6 y 3
3 11 1 o 0
2 13 7 y 5
2 . 4 n -5
3 16 7 n 3
1 14 4 y 4
2 15 6 y 3
1 16 4 o 1
2 13 2 n 3
;
run;
proc binning data=mylib.data_intermediaire numbin=4 woe;
input x0 x1 / binmethod=bucket;
target y / event="y";
output out=mylib.output_intermediaire_bins outwoe=mylib.output_intermediaire_woe;
run;
1
cas mylib; /* S'assurer que la bibliothèque 'mylib' est définie pour CAS */
Erklärung : Dieses fortgeschrittene Beispiel zeigt, wie fehlende Werte mit der Option `missing=special` gehandhabt werden, die ein separates Bin für sie erstellt. Es verwendet auch eine Variable `freq`, um die Beobachtungen bei der WOE-Berechnung zu gewichten. Darüber hinaus kombiniert es verschiedene Binning-Methoden, `bucket` für `x0` und `x1` und `quantile` für `x2`, um die Flexibilität der Prozedur zu demonstrieren. Dies ist besonders relevant für reale Datensätze, bei denen fehlende Werte und Gewichtungen häufig vorkommen.
Kopiert!
cas mylib; /* S'assurer que la bibliothèque 'mylib' est définie pour CAS */
libname mylib cas;
data mylib.data_avancee;
input x0 x1 x2 y $ freq;
datalines;
2 10 7 n 2
2 12 6 y 3
3 0 1 o 0
2 13 7 y 5
2 . 4 n -5
3 16 7 n 3
1 14 4 y 4
2 15 6 y 3
1 16 4 o 1
2 13 2 n 3
;
run;
proc binning data=mylib.data_avancee numbin=3 woe;
input x0 x1 / binmethod=bucket missing=special;
input x2 / binmethod=quantile;
target y / event="y";
weight freq;
output out=mylib.output_avancee;
run;
1
cas mylib; /* S'assurer que la bibliothèque 'mylib' est définie pour CAS */
2
LIBNAME mylib cas;
3
4
DATA mylib.data_avancee;
5
INPUT x0 x1 x2 y $ freq;
6
DATALINES;
7
2107 n 2
8
2126 y 3
9
3 0 1 o 0
10
2137 y 5
11
2 . 4 n -5
12
3167 n 3
13
1144 y 4
14
2156 y 3
15
1164 o 1
16
2132 n 3
17
;
18
RUN;
19
20
PROC BINNINGDATA=mylib.data_avancee numbin=3 woe;
21
INPUT x0 x1 / binmethod=bucket missing=special;
22
INPUT x2 / binmethod=quantile;
23
target y / event="y";
24
weight freq;
25
OUTPUT out=mylib.output_avancee;
26
RUN;
4 Codeblock
PROC BINNING Data
Erklärung : Dieses Beispiel hebt die Fähigkeiten von SAS Viya und der CAS-Umgebung hervor. Es zeigt, wie die BINNING-Prozedur nicht nur Bins und WOE generieren, sondern auch dieses Binning-'Modell' in einer CAS-Tabelle (`mylib.woe_mapping`) mithilfe der Anweisung `SAVE WOE=` speichern kann. Diese Mapping-Tabelle kann dann verwendet werden, um dieselben WOE-Transformationen auf neue Daten (`APPLYWOE=`) anzuwenden, wodurch die Konsistenz zwischen Trainings- und Validierungs-/Testdatensätzen gewährleistet wird, was eine gängige Praxis in der prädiktiven Modellierung ist.
Kopiert!
cas mylib; /* S'assurer que la bibliothèque 'mylib' est définie pour CAS */
libname mylib cas;
data mylib.data_cas;
input id x0 x1 x2 y $;
datalines;
1 2 10 7 n
2 2 12 6 y
3 3 11 1 n
4 2 13 7 y
5 2 . 4 n
6 3 16 7 n
7 1 14 4 y
8 2 15 6 y
9 1 16 4 n
10 2 13 2 n
;
run;
proc binning data=mylib.data_cas numbin=4 woe;
input x0 x1 x2;
target y / event="y";
save woe=mylib.woe_mapping / replace;
output out=mylib.output_cas;
run;
/* Appliquer le mapping WOE à de nouvelles données (exemple) */
data mylib.new_data;
input id x0 x1 x2 y $;
datalines;
11 2 11 5 y
12 3 14 6 n
13 1 10 3 y
;
run;
proc binning data=mylib.new_data applywoe=mylib.woe_mapping;
input x0 x1 x2;
target y / event="y";
output out=mylib.applied_woe_data;
run;
1
cas mylib; /* S'assurer que la bibliothèque 'mylib' est définie pour CAS */
2
LIBNAME mylib cas;
3
4
DATA mylib.data_cas;
5
INPUT id x0 x1 x2 y $;
6
DATALINES;
7
12107 n
8
22126 y
9
33111 n
10
42137 y
11
52 . 4 n
12
63167 n
13
71144 y
14
82156 y
15
91164 n
16
102132 n
17
;
18
RUN;
19
20
PROC BINNINGDATA=mylib.data_cas numbin=4 woe;
21
INPUT x0 x1 x2;
22
target y / event="y";
23
save woe=mylib.woe_mapping / replace;
24
OUTPUT out=mylib.output_cas;
25
RUN;
26
27
/* Appliquer le mapping WOE à de nouvelles données (exemple) */
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.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.