?>
L'action `bartScore` est utilisée pour appliquer un modèle d'arbres de régression additifs bayésiens (BART) préalablement entraîné à un nouveau jeu de données afin de générer des prédictions (scoring). Elle charge un modèle sauvegardé et calcule les statistiques de sortie pour chaque observation dans la table de scoring, telles que les valeurs prédites, les résidus, et les intervalles de crédibilité.
| Paramètre | Description |
|---|---|
| alpha | Spécifie le niveau de significativité pour la construction des intervalles de crédibilité. La valeur par défaut est 0.05. |
| avgOnly | Si défini sur FALSE, les prédictions de chaque échantillon MCMC sont incluses dans la table de sortie, en plus de la moyenne des prédictions. Par défaut, il est défini sur TRUE, ce qui ne sort que la moyenne. |
| casOut | Spécifie la table de sortie CAS pour stocker les résultats du scoring. Ce paramètre est obligatoire. |
| copyVars | Spécifie une liste de variables à copier de la table d'entrée vers la table de sortie `casOut`. |
| into | Spécifie le nom de la variable qui contiendra la décision de classification binaire, basée sur le seuil `intoCutpt`. |
| intoCutpt | Spécifie le seuil de probabilité pour la classification. La valeur par défaut est 0.5. |
| lcl | Spécifie le nom de la variable pour la limite de crédibilité inférieure de la prédiction. |
| pred | Spécifie le nom de la variable pour la valeur prédite moyenne. Par défaut, le nom est '_SAMP_MEAN_'. |
| resid | Spécifie le nom de la variable pour le résidu (différence entre la valeur réelle et la valeur prédite). |
| restore | Spécifie la table CAS contenant le modèle BART entraîné à utiliser pour le scoring. Ce paramètre est obligatoire. |
| seed | Spécifie la graine (seed) pour le générateur de nombres pseudo-aléatoires, assurant la reproductibilité des résultats. La valeur par défaut est 0, ce qui génère une graine aléatoire. |
| table | Spécifie la table de données d'entrée à scorer. Ce paramètre est obligatoire. |
| ucl | Spécifie le nom de la variable pour la limite de crédibilité supérieure de la prédiction. |
Ce code crée deux tables CAS. `mycas.cars_train` est utilisée pour entraîner un modèle BART, et `mycas.cars_score` est utilisée pour appliquer ce modèle et générer des prédictions. Le modèle sera sauvegardé dans `mycas.bart_model`.
1 DATA mycas.cars_train; SET sashelp.cars; keep Make Model Type Origin DriveTrain MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway Weight Wheelbase LENGTH; RUN; 2 DATA mycas.cars_score; SET sashelp.cars; IF mod(_n_, 5) = 0; keep Make Model Type Origin DriveTrain MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway Weight Wheelbase LENGTH; RUN; 3 PROC CAS; 4 bart.bartGauss TABLE={name='cars_train'}, 5 model={depVars={{name='MSRP'}}, effects={{vars={'Type', 'Origin', 'DriveTrain', 'EngineSize', 'Cylinders', 'Horsepower', 'MPG_City', 'Weight'}}}}, 6 store={name='bart_model', replace=true}; 7 RUN; 8 QUIT;
Cet exemple utilise le modèle BART (`bart_model`) précédemment entraîné pour scorer les données de la table `cars_score`. La table de sortie `cars_scored_simple` contiendra les prédictions moyennes.
| 1 | PROC CAS; bart.bartScore TABLE={name='cars_score'}, restore={name='bart_model'}, casOut={name='cars_scored_simple', replace=true}; RUN; QUIT; |
Cet exemple plus complet effectue un scoring et génère des statistiques supplémentaires : les limites de crédibilité inférieure (LCL) et supérieure (UCL) à 90% (alpha=0.1), la valeur prédite, et le résidu. Il copie également les variables `Make`, `Model` et `MSRP` de la table d'entrée vers la table de sortie pour faciliter la comparaison.
| 1 | PROC CAS; bart.bartScore TABLE={name='cars_score'}, restore={name='bart_model'}, alpha=0.1, copyVars={'Make', 'Model', 'MSRP'}, pred='Predicted_MSRP', lcl='LCL_MSRP', ucl='UCL_MSRP', resid='Residual', casOut={name='cars_scored_detailed', replace=true}; RUN; QUIT; |
Après avoir entraîné un modèle de classification avec `bartProbit`, cet exemple montre comment scorer de nouvelles données. Il génère la probabilité prédite et une variable de classification `Into_HighMSRP` basée sur un seuil de 0.4.
| 1 | PROC CAS; |
| 2 | /* Étape 1: Entraîner un modèle de classification binaire */ |
| 3 | bart.bartProbit TABLE={name='cars_train', where='MSRP is not null'}, |
| 4 | model={depVars={{name='MSRP', event='1'}}, effects={{vars={'Type', 'Origin', 'DriveTrain', 'EngineSize', 'Horsepower'}}}}, |
| 5 | class={'Type', 'Origin', 'DriveTrain'}, |
| 6 | event='1', /* L'événement est 'MSRP élevé' */ |
| 7 | responseLevelOrder='ASC', |
| 8 | store={name='bart_probit_model', replace=true}; |
| 9 | /* Étape 2: Scorer avec le modèle de classification */ |
| 10 | bart.bartScore TABLE={name='cars_score'}, |
| 11 | restore={name='bart_probit_model'}, |
| 12 | pred='Prob_HighMSRP', |
| 13 | into='Into_HighMSRP', |
| 14 | intoCutpt=0.4, |
| 15 | copyVars={'Make', 'Model', 'MSRP'}, |
| 16 | casOut={name='cars_scored_probit', replace=true}; |
| 17 | RUN; |
| 18 | QUIT; |