Publié le :
Statistique CREATION_INTERNE_ET_SASHELP

Modèle Probit pour Données Binaires avec PROC BART

Ce code est également disponible en : Deutsch English Español
En attente de validation
Cet exemple illustre comment appliquer la procédure BART pour modéliser des données de réponse binaires. Il utilise un jeu de données sur les emails pour prédire si un email est du spam (variable 'Class'). La procédure inclut le partitionnement des données en ensembles d'entraînement et de test via la variable 'Test' et spécifie une distribution binaire pour la variable de réponse. Les résultats comprennent des statistiques d'ajustement et une matrice de classification pour évaluer la performance du modèle. La procédure BART est un outil de modélisation non-paramétrique basé sur des arbres de décision qui est particulièrement efficace pour capturer des relations complexes dans les données.
Analyse des données

Type : CREATION_INTERNE_ET_SASHELP


Les exemples utilisent des données générées à partir de SASHELP.JunkMail ou des données synthétiques pour des cas spécifiques, garantissant l'autonomie de chaque bloc de code.

1 Bloc de code
PROC BART Data
Explication :
Cet exemple montre l'utilisation minimale de PROC BART pour un modèle probit binaire. Il charge le jeu de données SASHELP.JunkMail dans une librairie CAS ('mylib') et spécifie la variable de réponse 'Class' avec une distribution binaire ('dist=binary'), ainsi qu'un ensemble réduit de prédicteurs. Un partitionnement simple est utilisé pour diviser les données en ensembles d'entraînement et de test via la variable 'Test'.
Copié !
1/* Préparation des données dans CAS */
2cas;
3LIBNAME mylib cas;
4 
5DATA mylib.JunkMail;
6 SET Sashelp.JunkMail;
7RUN;
8 
9/* Utilisation Basique de PROC BART pour un modèle probit binaire */
10PROC BART DATA=mylib.JunkMail seed=12345;
11 model Class = Make Address All _3d Our Internet Order / dist=binary;
12 partition rolevar=Test(train='0' test='1');
13RUN;
2 Bloc de code
PROC BART Data
Explication :
Cet exemple étend l'utilisation de PROC BART en incluant des options courantes pour la simulation MCMC : le nombre de chaînes MCMC (NCHAIN=4), le nombre d'itérations de préchauffage (NBI=1000), et le nombre d'échantillons à conserver (NSAMPLE=5000). L'instruction OUTPUT est utilisée pour sauvegarder les prédictions de probabilité (p=ProbSpam) et la classe prédite (pred=PredictedSpam) dans une nouvelle table CAS, permettant une évaluation détaillée du modèle. Un échantillon des prédictions est ensuite affiché.
Copié !
1/* Préparation des données dans CAS */
2cas;
3LIBNAME mylib cas;
4 
5DATA mylib.JunkMail;
6 SET Sashelp.JunkMail;
7RUN;
8 
9/* Options courantes et sortie des prédictions */
10PROC BART DATA=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 */
16 OUTPUT out=mylib.BartPredictions copyvars=(Class Test) p=ProbSpam pred=PredictedSpam;
17RUN;
18 
19/* Afficher les premières lignes des prédictions */
20PROC PRINT DATA=mylib.BartPredictions(obs=10);
21RUN;
3 Bloc de code
PROC BART Data
Explication :
Cet exemple avancé illustre la personnalisation des hyperparamètres de l'arbre BART via l'instruction PRIOR, en spécifiant le nombre d'arbres (NTREE=100), le nombre minimum d'observations pour un split (NMINSPLIT=5) et pour une feuille (NMINLEAF=3). Il intègre également la validation croisée (CV NCV=5) pour évaluer la robustesse du modèle. Une nouvelle variable d'interaction 'Length_Exclamation' est créée pour démontrer une manipulation de données avant le modèle. Les prédictions sont sauvegardées pour une analyse ultérieure.
Copié !
1/* Préparation des données dans CAS */
2cas;
3LIBNAME mylib cas;
4 
5DATA mylib.JunkMail;
6 SET Sashelp.JunkMail;
7 /* Exemple de transformation de variable: créer une variable d'interaction simple */
8 Length_Exclamation = LENGTH * Exclamation;
9RUN;
10 
11/* Cas Avancé : hyperparamètres, validation croisée */
12PROC BART DATA=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 */
17 cv ncv=5 foldvar=Test(train='0' test='1');
18 OUTPUT out=mylib.BartAdvancedPred p=ProbSpam pred=PredictedSpam;
19RUN;
20 
4 Bloc de code
PROC BART Data
Explication :
Cet exemple met en évidence l'intégration de PROC BART avec l'environnement SAS Viya/CAS. Premièrement, un modèle BART est entraîné et sauvegardé en tant qu'élément rstore (BartModel_rstore) dans la librairie CAS. Ensuite, une seconde invocation de PROC BART utilise l'option RSTORE pour charger ce modèle sauvegardé et l'appliquer ('scorer') sur un sous-ensemble des données (ici, l'ensemble de test). Les prédictions sont sauvegardées dans une nouvelle table CAS, et une table de fréquences est générée pour évaluer la matrice de classification du modèle sur les nouvelles données. Ceci est essentiel pour le déploiement et la réutilisation efficace des modèles en production.
Copié !
1/* Préparation des données dans CAS */
2cas;
3LIBNAME mylib cas;
4 
5DATA mylib.JunkMail;
6 SET Sashelp.JunkMail;
7RUN;
8 
9/* Entraînement et sauvegarde du modèle BART */
10PROC BART DATA=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;
15RUN;
16 
17/* Chargement du modèle sauvegardé et score sur de nouvelles données (ici l'ensemble de test) */
18PROC BART DATA=mylib.JunkMail(where=(Test='1')) rstore=mylib.BartModel_rstore;
19 score out=mylib.BartScoredData copyvars=(Class Test) p=ScoreProb pred=ScorePred;
20RUN;
21 
22/* Vérifier les résultats du scoring */
23PROC FREQ DATA=mylib.BartScoredData;
24 tables Class*ScorePred;
25RUN;
26 
27PROC PRINT DATA=mylib.BartScoredData(obs=10);
28RUN;
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.
Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« La procédure PROC BART (Bayesian Additive Regression Trees) représente une avancée majeure dans l'arsenal analytique de SAS Viya, offrant une alternative non-paramétrique puissante aux modèles logistiques classiques. Son application au modèle Probit pour données binaires est particulièrement pertinente : au lieu de supposer une relation linéaire stricte entre les prédicteurs (comme les mots-clés "Make" ou "Our" dans la détection de spam), BART construit une somme d'arbres de décision "faibles". Cette structure permet de capturer naturellement des interactions complexes et des non-linéarités sans nécessiter de spécification manuelle fastidieuse, tout en offrant une régularisation intrinsèque qui prévient le surapprentissage. »