Publié le :

Scoring de nouvelles données avec un modèle Forest existant

Ce code est également disponible en : Deutsch English Español
En attente de validation
L'exemple montre comment la procédure FOREST peut être utilisée avec l'option OUTMODEL= pour sauvegarder un modèle entraîné. Ce modèle peut ensuite être chargé via l'option INMODEL= pour scorer de nouvelles observations. Il est crucial de ne pas modifier la table du modèle sauvegardé pour garantir la validité des scores. L'exemple utilise le jeu de données JunkMail de la bibliothèque Sashelp pour classer les e-mails en spam (1) ou non (0) en se basant sur 57 variables prédictives. La compatibilité avec SAS© Viya 4 est assurée par l'utilisation des bibliothèques CAS.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent le jeu de données Sashelp.JunkMail, qui est chargé dans une table CAS temporaire nommée mycas.junkmail pour l'exécution des procédures.

1 Bloc de code
PROC FOREST Data
Explication :
Cet exemple initialise une session CAS et charge le jeu de données 'JunkMail' de Sashelp dans une table CAS nommée 'mycas.junkmail'. Il entraîne ensuite un modèle de forêt aléatoire de base en utilisant la procédure FOREST avec les paramètres par défaut, à l'exception d'une graine pour la reproductibilité. Les statistiques d'ajustement du modèle sont sauvegardées et affichées.
Copié !
1caslib _all_ assign;
2 
3/* Charger le jeu de données Sashelp.JunkMail dans une table CAS temporaire */
4DATA mycas.junkmail;
5 SET sashelp.junkmail;
6RUN;
7 
8/* Entraîner un modèle Forest de base */
9PROC FOREST DATA=mycas.junkmail seed=54321;
10 INPUT Address Addresses All Bracket Business CS CapAvg CapLong
11 CapTotal Conference Credit DATA Direct Dollar Edu Email
12 Exclamation Font Free George HP HPL Internet Lab Labs
13 Mail Make Meeting Money Order Original Our Over PM Paren
14 Parts People Pound Project RE Receive Remove Semicolon
15 TABLE Technology Telnet Will You Your _000 _85 _415 _650
16 _857 _1999 _3D / level = interval;
17 target class /level=nominal;
18 ods OUTPUT FitStatistics=basic_fit_stats;
19RUN;
20 
21/* Afficher les statistiques d'ajustement */
22PROC PRINT DATA=basic_fit_stats;
23RUN;
2 Bloc de code
PROC FOREST
Explication :
Cet exemple étend le cas d'utilisation basique en intégrant des options de croissance des arbres (NODESIZE et MAXDEPTH) pour contrôler la complexité des arbres. Il utilise également la validation croisée (CROSSVALIDATION CV=5) pour évaluer la performance du modèle de manière plus robuste. Les scores prédits sont sauvegardés et les premières observations sont affichées.
Copié !
1caslib _all_ assign;
2 
3/* Charger le jeu de données Sashelp.JunkMail dans une table CAS temporaire */
4DATA mycas.junkmail;
5 SET sashelp.junkmail;
6RUN;
7 
8/* Entraîner un modèle Forest avec validation croisée et options d'arbre */
9PROC FOREST DATA=mycas.junkmail seed=67890;
10 INPUT Address Addresses All Bracket Business CS CapAvg CapLong
11 CapTotal Conference Credit DATA Direct Dollar Edu Email
12 Exclamation Font Free George HP HPL Internet Lab Labs
13 Mail Make Meeting Money Order Original Our Over PM Paren
14 Parts People Pound Project RE Receive Remove Semicolon
15 TABLE Technology Telnet Will You Your _000 _85 _415 _650
16 _857 _1999 _3D / level = interval;
17 target class /level=nominal;
18 grow nodesize=5 maxdepth=10; /* Options courantes pour la croissance des arbres */
19 crossvalidation cv=5; /* Validation croisée à 5 plis */
20 OUTPUT out=mycas.forest_cv_scores predicted_class;
21 ods OUTPUT FitStatistics=cv_fit_stats;
22RUN;
23 
24/* Afficher les premières observations des scores de validation croisée */
25PROC PRINT DATA=mycas.forest_cv_scores (obs=10);
26RUN;
3 Bloc de code
PROC FOREST
Explication :
Cet exemple avancé utilise la procédure FOREST pour entraîner un modèle tout en effectuant une sélection de variables basée sur leur importance (SELECTION METHOD=VARIABLEIMPORTANCE). L'instruction IMPORTANCE est ajoutée pour afficher les contributions de chaque variable au modèle. Les scores prédits sont sauvegardés et l'importance des variables est affichée dans une table séparée.
Copié !
1caslib _all_ assign;
2 
3/* Charger le jeu de données Sashelp.JunkMail dans une table CAS temporaire */
4DATA mycas.junkmail;
5 SET sashelp.junkmail;
6RUN;
7 
8/* Entraîner un modèle Forest avec sélection de variables et importance */
9PROC FOREST DATA=mycas.junkmail seed=98765;
10 INPUT Address Addresses All Bracket Business CS CapAvg CapLong
11 CapTotal Conference Credit DATA Direct Dollar Edu Email
12 Exclamation Font Free George HP HPL Internet Lab Labs
13 Mail Make Meeting Money Order Original Our Over PM Paren
14 Parts People Pound Project RE Receive Remove Semicolon
15 TABLE Technology Telnet Will You Your _000 _85 _415 _650
16 _857 _1999 _3D / level = interval;
17 target class /level=nominal;
18 selection method=variableimportance; /* Sélection de variables basée sur l'importance */
19 importance; /* Demander l'affichage de l'importance des variables */
20 OUTPUT out=mycas.forest_importance_scores predicted_class;
21 ods OUTPUT FitStatistics=importance_fit_stats VariableImportance=var_importance_table;
22RUN;
23 
24/* Afficher l'importance des variables */
25PROC PRINT DATA=var_importance_table;
26RUN;
27 
28/* Afficher les premières observations des scores */
29PROC PRINT DATA=mycas.forest_importance_scores (obs=10);
30RUN;
4 Bloc de code
PROC FOREST
Explication :
Cet exemple, tel que présenté dans la documentation, montre le processus complet de sauvegarde et de réutilisation d'un modèle. D'abord, un modèle est entraîné sur 'mycas.junkmail' et sauvegardé à l'aide de l'option OUTMODEL= dans 'mycas.forest_model'. Ensuite, ce modèle sauvegardé est chargé via l'option INMODEL= pour scorer les 'nouvelles' données (dans cet exemple, les mêmes données sont utilisées à des fins de démonstration). Les scores prédits sont sauvegardés dans 'mycas.score_later' et les premières observations sont affichées, illustrant la capacité à appliquer un modèle pré-entraîné.
Copié !
1caslib _all_ assign;
2 
3/* Charger le jeu de données Sashelp.JunkMail dans une table CAS temporaire */
4DATA mycas.junkmail;
5 SET sashelp.junkmail;
6RUN;
7 
8/* Entraîner un modèle Forest et le sauvegarder (première exécution) */
9PROC FOREST DATA=mycas.junkmail outmodel=mycas.forest_model seed=12345;
10 INPUT Address Addresses All Bracket Business CS CapAvg CapLong
11 CapTotal Conference Credit DATA Direct Dollar Edu Email
12 Exclamation Font Free George HP HPL Internet Lab Labs
13 Mail Make Meeting Money Order Original Our Over PM Paren
14 Parts People Pound Project RE Receive Remove Semicolon
15 TABLE Technology Telnet Will You Your _000 _85 _415 _650
16 _857 _1999 _3D / level = interval;
17 target class /level=nominal;
18 OUTPUT out=mycas.score_at_runtime predicted_class;
19RUN;
20 
21/* Utiliser le modèle sauvegardé pour scorer de nouvelles données (ici, les mêmes données pour démonstration) */
22/* (Simule le scoring de 'nouvelles' données à un moment ultérieur ou sur un autre jeu de données) */
23PROC FOREST DATA=mycas.junkmail inmodel=mycas.forest_model;
24 OUTPUT out=mycas.score_later predicted_class;
25RUN;
26 
27/* Afficher les premières observations des données scorées */
28PROC PRINT DATA=mycas.score_later (obs=10);
29RUN;
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.
Informations de Copyright : Copyright © SAS Institute Inc. All rights reserved.