decisionTree

forestScore

##set_decisiontree

Description

L'action forestScore  permet de réaliser des prédictions (scoring ) sur une table de données en utilisant un modèle  de forêt aléatoire  précédemment entraîn

L'action forestScore permet de réaliser des prédictions (scoringProcessus d'application d'un modèle prédictif à de nouvelles données pour calculer une probabilité ou un score, permettant ainsi d'automatiser la prise de décision en temps réel sur SAS Viya.) sur une table de données en utilisant un modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). de forêt aléatoireAlgorithme d'apprentissage supervisé combinant plusieurs arbres de décision indépendants pour améliorer la précision et réduire le surapprentissage par agrégation de leurs prédictions. précédemment entraîné. Contrairement à un arbre de décision uniqueModèle prédictif segmentant les données en groupes homogènes par une série de règles binaires successives, facilitant l'interprétation visuelle des décisions et des interactions entre variables., la forêt combine les votes de plusieurs arbres pour produire une prédiction plus robuste et moins sensible au surapprentissage. C'est un peu comme demander l'avis de tout le village plutôt que celui d'un seul ermite au fond des bois ! Cette action calcule automatiquement le taux d'erreur de classification pour les cibles nominales ou l'erreur quadratique moyenne (MSE) pour les cibles continues.

Syntaxe Officielle
decisionTree.forestScore /
applyRowOrder=TRUE | FALSE,
assess=TRUE | FALSE,
assessOneRow=TRUE | FALSE,
casOut={casouttable},
copyVars={"variable-name-1" <, "variable-name-2", ...>},
encodeName=TRUE | FALSE,
impute=TRUE | FALSE,
includeMissing=TRUE | FALSE,
isolation=TRUE | FALSE,
modelId="string",
modelTable={castable},
nTree=integer,
rbaImp=TRUE | FALSE,
seed=double,
table={castable},
target="variable-name",
treeError=TRUE | FALSE,
treeVotes=TRUE | FALSE,
varIntImp=integer,
vote="MAJORITY" | "PROB";

Paramètres Clés

Nom du paramètre Description
modelTable Spécifie la table CAS contenant le modèle de forêt entraîné (souvent généré par forestTrain).
table Spécifie la table de données d'entrée contenant les observations à scorer.
casOut Désigne la table de sortie où les résultats de la prédiction seront stockés. Si omis, l'action ne renvoie que les statistiques sommaires d'erreur.
copyVars Liste des variables de la table d'entrée à copier directement dans la table de sortie (utile pour conserver un identifiant client par exemple).
vote Spécifie la méthode de décision pour les cibles nominales : 'MAJORITY' (vote majoritaire des arbres) ou 'PROB' (moyenne des probabilités prédites).
assess Si TRUE, ajoute les probabilités prédites pour les niveaux d'événements, prêtes pour une analyse de performance avec l'action 'assess'.
nTree Permet de limiter le nombre d'arbres de la forêt à utiliser lors du scoring (par défaut, tous les arbres du modèle sont utilisés).

Préparation des données

Préparation d'un modèle de forêt pour le scoring

Ce code crée une table de données fictive sur l'attrition (churn) et entraîne un modèle de forêt pour permettre l'utilisation ultérieure de forestScore.

1DATA casuser.churn_data;
2 INPUT id income gender $ churn;
3 DATALINES;
41 50000 M 0
52 65000 F 0
63 20000 M 1
74 100000 F 0
85 15000 M 1
96 45000 F 0
107 30000 M 1
118 80000 F 0
12;
13RUN;
14PROC CAS;
15 /* Entraînement préalable indispensable */
16 decisionTree.forestTrain /
17 TABLE={name="churn_data", caslib="casuser"},
18 target="churn",
19 inputs={"income", "gender"},
20 seed=1234,
21 casOut={name="forest_model_churn", replace=true};
22RUN;

Exemples d'utilisation

Scoring de base avec statistiques d'erreur

Exécute le scoring sans table de sortie pour obtenir rapidement le taux d'erreur sur les données fournies.

1PROC CAS;
2 decisionTree.forestScore /
3 modelTable={name="forest_model_churn", caslib="casuser"},
4 TABLE={name="churn_data", caslib="casuser"};
5RUN;
Résultat Attendu :
Un tableau récapitulatif montrant le nombre d'observations lues et le taux de mauvaise classification.
Scoring complet avec export des probabilités et conservation d'ID

Ici, on génère une table de résultats incluant l'identifiant d'origine, les probabilités de chaque classe, et on utilise la moyenne des probabilités pour la décision finale.

1PROC CAS;
2 decisionTree.forestScore /
3 modelTable={name="forest_model_churn", caslib="casuser"},
4 TABLE={name="churn_data", caslib="casuser"},
5 casOut={name="churn_scored_results", replace=true, label="Resultats Scoring Foret"},
6 copyVars={"id", "income"},
7 vote="PROB",
8 assess=true,
9 treeVotes=true;
10RUN;
11/* Visualisation des resultats */
12PROC PRINT DATA=casuser.churn_scored_results(obs=5); RUN;
Résultat Attendu :
La table 'churn_scored_results' est créée dans CAS avec les prédictions, les colonnes de probabilités prédites (_DT_P_...) et les variables copiées.