dtreeScore
Description
L'action permet d'évaluer (scorerAction d'appliquer un modèle statistique à de nouvelles données pour calculer une probabilité ou une valeur prédite. C’est l’étape de déploiement transformant les entrées en prédictions actionnables.) 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). d'arbre de décision préalablement généré. Concrètement, elle prédit le futur (ou presque 🔮) en appliquant les règles de votre arbre de décision sur de nouvelles données. Elle crée en sortie une table riche contenant les prédictions, les probabilités associées, et peut même inclure les détails du chemin d'évaluation () pour vous aider à comprendre précisément le 'pourquoi' d'une prédiction à travers les branches de l'arbre.
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| modelTable | Paramètre requis. Spécifie la table contenant le modèle de l'arbre de décision . |
| table | Paramètre requis. La table d'entrée contenant les données que vous souhaitez scorer . |
| casOut | La table de sortie dans laquelle enregistrer les résultats du scoring . Si ce paramètre est omis, seule une évaluation globale (comme l'erreur quadratique moyenne ou le taux de classification) est calculée. |
| copyVars | Liste des variables à copier directement de la table d'entrée vers la table de sortie . Idéal pour conserver des identifiants métier ou des dates de référence ! |
| assess | Si défini sur True, les probabilités prédites sont ajoutées à la table de résultat pour les niveaux d'événements . Pratique pour l'action assess future. |
| assessOneRow | Si défini sur True, ajoute toutes les probabilités d'événements dans des colonnes séparées avec le préfixe '_DT_P_' . |
| encodeName | Détermine s'il faut encoder proprement les noms de variables des probabilités prédites (par exemple utiliser le préfixe propre 'P_' au lieu de '_DT_P_') . |
| path | Spécifie si les détails de parcours (le chemin exact suivi dans l'arbre par l'algorithme) doivent être inclus dans la table scorée . |
| target | Variable cible pour l'évaluation du jeu de données . Facultatif si le nom est identique à celui utilisé lors de l'entraînement de l'arbre. |
| impute | Définit comment traiter les valeurs non manquantes de la variable cible. Si True, elles sont considérées exactes et utilisées comme valeurs prédites . |
| seed | Graine pour le générateur de nombres aléatoires . Utile si vous avez besoin d'une répétabilité absolue (0 par défaut, basé sur l'horloge système). |
Préparation des données
Création de données et entraînement initial du modèle
Pour scorer un arbre, il nous faut d'abord des données et un arbre (une logique mathématique implacable 🌲). Voici de quoi créer une table et entraîner un petit modèle de test avec l'action %%dtreeTrain%%.
| 1 | PROC CAS; |
| 2 | SESSION casauto; |
| 3 | /* Simulation d'un jeu de donnees classique */ |
| 4 | TABLE.loadTable / path="iris.sashdat", caslib="casuser", casOut={name="iris", replace=True}; |
| 5 | /* Entrainement d'un modele pour l'exemple */ |
| 6 | decisionTree.dtreeTrain / |
| 7 | TABLE={name="iris"} |
| 8 | target="Species" |
| 9 | inputs={"SepalLength", "SepalWidth", "PetalLength", "PetalWidth"} |
| 10 | casOut={name="modele_iris", replace=True}; |
| 11 | RUN; |
| 12 | QUIT; |
Exemples d'utilisation
Scoring basique d'un modèle d'arbre
Ici, on applique notre modèle fraîchement généré sur nos données d'origine pour obtenir de simples prédictions dans une nouvelle table de sortie.
| 1 | PROC CAS; |
| 2 | decisionTree.dtreeScore / |
| 3 | TABLE={name="iris"} |
| 4 | modelTable={name="modele_iris"} |
| 5 | casOut={name="iris_score", replace=True} |
| 6 | copyVars={"Species"}; |
| 7 | RUN; |
| 8 | QUIT; |
Résultat Attendu :
Scoring complet avec probabilités, encodage parfait et parcours d'arbre
Sortons l'artillerie lourde 🚀 ! On score la table en demandant explicitement les probabilités (%%assess%% et %%assessOneRow%%), en nommant proprement les colonnes avec un préfixe lisible 'P_' (%%encodeName%%), et en gardant la trace complète du chemin emprunté dans l'arbre pour assurer l'explicabilité de la décision (%%path%%).
| 1 | PROC CAS; |
| 2 | decisionTree.dtreeScore / |
| 3 | TABLE={name="iris"} |
| 4 | modelTable={name="modele_iris"} |
| 5 | casOut={name="iris_score_complet", replace=True} |
| 6 | copyVars={"Species"} |
| 7 | assess=True |
| 8 | assessOneRow=True |
| 9 | encodeName=True |
| 10 | path=True; |
| 11 | RUN; |
| 12 | QUIT; |