Dieses Beispiel veranschaulicht, wie die BART-Prozedur angewendet wird, um binäre Antwortdaten zu modellieren. Es verwendet einen E-Mail-Datensatz, um vorherzusagen, ob eine E-Mail Spam ist (Variable 'Class'). Die Prozedur umfasst die Partitionierung der Daten in Trainings- und Testsätze über die Variable 'Test' und die Spezifikation einer binären Verteilung für die Antwortvariable. Die Ergebnisse umfassen Anpassungsstatistiken und eine Klassifizierungsmatrix zur Bewertung der Modellleistung. Die BART-Prozedur ist ein nicht-parametrisches Modellierungswerkzeug, das auf Entscheidungsbäumen basiert und besonders effektiv komplexe Beziehungen in Daten erfassen kann.
Datenanalyse
Type : CREATION_INTERNE_ET_SASHELP
Die Beispiele verwenden Daten, die aus SASHELP.JunkMail generiert wurden oder synthetische Daten für spezifische Fälle, wodurch die Autonomie jedes Codeblocks gewährleistet wird.
1 Codeblock
PROC BART Data
Erklärung : Dieses Beispiel zeigt die minimale Verwendung von PROC BART für ein binäres Probit-Modell. Es lädt den Datensatz SASHELP.JunkMail in eine CAS-Bibliothek ('mylib') und spezifiziert die Antwortvariable 'Class' mit einer binären Verteilung ('dist=binary') sowie einen reduzierten Satz von Prädiktoren. Eine einfache Partitionierung wird verwendet, um die Daten über die Variable 'Test' in Trainings- und Testsätze aufzuteilen.
Kopiert!
/* Préparation des données dans CAS */
cas;
libname mylib cas;
data mylib.JunkMail;
set Sashelp.JunkMail;
run;
/* Utilisation Basique de PROC BART pour un modèle probit binaire */
proc bart data=mylib.JunkMail seed=12345;
model Class = Make Address All _3d Our Internet Order / dist=binary;
partition rolevar=Test(train='0' test='1');
run;
1
/* Préparation des données dans CAS */
2
cas;
3
LIBNAME mylib cas;
4
5
DATA mylib.JunkMail;
6
SET Sashelp.JunkMail;
7
RUN;
8
9
/* Utilisation Basique de PROC BART pour un modèle probit binaire */
10
PROC BARTDATA=mylib.JunkMail seed=12345;
11
model Class = Make Address All _3d Our Internet Order / dist=binary;
12
partition rolevar=Test(train='0' test='1');
13
RUN;
2 Codeblock
PROC BART Data
Erklärung : Dieses Beispiel erweitert die Verwendung von PROC BART um gängige Optionen für die MCMC-Simulation: die Anzahl der MCMC-Ketten (NCHAIN=4), die Anzahl der Aufwärmiterationen (NBI=1000) und die Anzahl der zu speichernden Stichproben (NSAMPLE=5000). Die OUTPUT-Anweisung wird verwendet, um Wahrscheinlichkeitsvorhersagen (p=ProbSpam) und die vorhergesagte Klasse (pred=PredictedSpam) in einer neuen CAS-Tabelle zu speichern, was eine detaillierte Modellbewertung ermöglicht. Anschließend wird eine Stichprobe der Vorhersagen angezeigt.
Kopiert!
/* Préparation des données dans CAS */
cas;
libname mylib cas;
data mylib.JunkMail;
set Sashelp.JunkMail;
run;
/* Options courantes et sortie des prédictions */
proc bart data=mylib.JunkMail seed=67890;
model Class = Make Address All _3d Our Internet Order Mail Receive Will / dist=binary;
/* Options MCMC pour une meilleure convergence et stabilité */
mcmc nchain=4 nbi=1000 nsample=5000;
partition rolevar=Test(train='0' test='1');
/* Sauvegarde les prédictions et probabilités dans une table CAS */
output out=mylib.BartPredictions copyvars=(Class Test) p=ProbSpam pred=PredictedSpam;
run;
/* Afficher les premières lignes des prédictions */
proc print data=mylib.BartPredictions(obs=10);
run;
1
/* Préparation des données dans CAS */
2
cas;
3
LIBNAME mylib cas;
4
5
DATA mylib.JunkMail;
6
SET Sashelp.JunkMail;
7
RUN;
8
9
/* Options courantes et sortie des prédictions */
10
PROC BARTDATA=mylib.JunkMail seed=67890;
11
model Class = Make Address All _3d Our Internet Order Mail Receive Will / dist=binary;
12
/* Options MCMC pour une meilleure convergence et stabilité */
13
mcmc nchain=4 nbi=1000 nsample=5000;
14
partition rolevar=Test(train='0' test='1');
15
/* Sauvegarde les prédictions et probabilités dans une table CAS */
/* Afficher les premières lignes des prédictions */
20
PROC PRINTDATA=mylib.BartPredictions(obs=10);
21
RUN;
3 Codeblock
PROC BART Data
Erklärung : Dieses erweiterte Beispiel veranschaulicht die Anpassung der BART-Baum-Hyperparameter über die PRIOR-Anweisung, indem die Anzahl der Bäume (NTREE=100), die minimale Anzahl von Beobachtungen für einen Split (NMINSPLIT=5) und für ein Blatt (NMINLEAF=3) angegeben wird. Es integriert auch die Kreuzvalidierung (CV NCV=5), um die Robustheit des Modells zu bewerten. Eine neue Interaktionsvariable 'Length_Exclamation' wird erstellt, um eine Datenmanipulation vor dem Modell zu demonstrieren. Die Vorhersagen werden zur späteren Analyse gespeichert.
Kopiert!
/* Préparation des données dans CAS */
cas;
libname mylib cas;
data mylib.JunkMail;
set Sashelp.JunkMail;
/* Exemple de transformation de variable: créer une variable d'interaction simple */
Length_Exclamation = Length * Exclamation;
run;
/* Cas Avancé : hyperparamètres, validation croisée */
proc bart data=mylib.JunkMail seed=112233;
model Class = Make Address All _3d Our Internet Order Mail Receive Will People Report Length_Exclamation / dist=binary;
/* Personnalisation des hyperparamètres de l'arbre BART */
prior bart ntree=100 nminsplit=5 nminleaf=3;
/* Utilisation de la validation croisée (5 plis) pour évaluer la robustesse du modèle */
cv ncv=5 foldvar=Test(train='0' test='1');
output out=mylib.BartAdvancedPred p=ProbSpam pred=PredictedSpam;
run;
1
/* Préparation des données dans CAS */
2
cas;
3
LIBNAME mylib cas;
4
5
DATA mylib.JunkMail;
6
SET Sashelp.JunkMail;
7
/* Exemple de transformation de variable: créer une variable d'interaction simple */
8
Length_Exclamation = LENGTH * Exclamation;
9
RUN;
10
11
/* Cas Avancé : hyperparamètres, validation croisée */
12
PROC BARTDATA=mylib.JunkMail seed=112233;
13
model Class = Make Address All _3d Our Internet Order Mail Receive Will People Report Length_Exclamation / dist=binary;
14
/* Personnalisation des hyperparamètres de l'arbre BART */
15
prior bart ntree=100 nminsplit=5 nminleaf=3;
16
/* Utilisation de la validation croisée (5 plis) pour évaluer la robustesse du modèle */
Erklärung : Dieses Beispiel hebt die Integration von PROC BART in die SAS Viya/CAS-Umgebung hervor. Zuerst wird ein BART-Modell trainiert und als rstore-Element (BartModel_rstore) in der CAS-Bibliothek gespeichert. Anschließend verwendet ein zweiter Aufruf von PROC BART die Option RSTORE, um dieses gespeicherte Modell zu laden und auf eine Untergruppe der Daten (hier den Testsatz) anzuwenden ('score'). Die Vorhersagen werden in einer neuen CAS-Tabelle gespeichert, und eine Häufigkeitstabelle wird generiert, um die Klassifizierungsmatrix des Modells auf den neuen Daten zu bewerten. Dies ist wesentlich für den Einsatz und die effektive Wiederverwendung von Modellen in der Produktion.
Kopiert!
/* Préparation des données dans CAS */
cas;
libname mylib cas;
data mylib.JunkMail;
set Sashelp.JunkMail;
run;
/* Entraînement et sauvegarde du modèle BART */
proc bart data=mylib.JunkMail seed=445566;
model Class = Make Address All _3d Our Internet Order Mail Receive Will People Report Addresses Free Business / dist=binary;
partition rolevar=Test(train='0' test='1');
/* Sauvegarde le modèle entraîné dans CAS pour réutilisation */
save rstore=mylib.BartModel_rstore;
run;
/* Chargement du modèle sauvegardé et score sur de nouvelles données (ici l'ensemble de test) */
proc bart data=mylib.JunkMail(where=(Test='1')) rstore=mylib.BartModel_rstore;
score out=mylib.BartScoredData copyvars=(Class Test) p=ScoreProb pred=ScorePred;
run;
/* Vérifier les résultats du scoring */
proc freq data=mylib.BartScoredData;
tables Class*ScorePred;
run;
proc print data=mylib.BartScoredData(obs=10);
run;
1
/* Préparation des données dans CAS */
2
cas;
3
LIBNAME mylib cas;
4
5
DATA mylib.JunkMail;
6
SET Sashelp.JunkMail;
7
RUN;
8
9
/* Entraînement et sauvegarde du modèle BART */
10
PROC BARTDATA=mylib.JunkMail seed=445566;
11
model Class = Make Address All _3d Our Internet Order Mail Receive Will People Report Addresses Free Business / dist=binary;
12
partition rolevar=Test(train='0' test='1');
13
/* Sauvegarde le modèle entraîné dans CAS pour réutilisation */
14
save rstore=mylib.BartModel_rstore;
15
RUN;
16
17
/* Chargement du modèle sauvegardé et score sur de nouvelles données (ici l'ensemble de test) */
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.