decisionTree

dtreeTrain

##set_decisiontree

Description

L'action dtreeTrain permet d'entraîner 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 à partir de vos données en utilisant . Que vous cherchiez à faire de la classification ou de la régression, elle plantera de belles graines analytiques (pardon pour le jeu de mots végétal !). En bref, elle génère un de décision robuste pour vous aider à y voir plus clair dans vos variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. explicatives et à extraire de la valeur prédictive de votre table.

Syntaxe Officielle
proc cas;
decisionTree.dtreeTrain /
table={name="nom_table"}
inputs={"var1", "var2"}
target="var_cible"
casOut={name="table_modele", replace=True};
run;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table d'entrée contenant vos précieuses données à analyser.
inputs Liste des variables (colonnes) prédictives utilisées pour faire pousser l'arbre.
target La variable cible (variable à prédire). Si elle est numérique sans être déclarée dans 'nominals', hop, on fait un arbre de régression !
casOut Table de sortie contenant le modèle de l'arbre généré, prêt à être sauvegardé ou utilisé pour du scoring ultérieur.
maxLevel Profondeur maximale de l'arbre. Évitez de faire un baobab de 100 niveaux si vous voulez que l'algorithme reste interprétable pour les humains.
maxBranch Nombre maximum de branches (enfants) autorisées pour chaque nœud ou niveau de l'arbre.
nominals Liste des variables d'entrée et/ou cibles à traiter strictement de manière catégorielle (nominales).
prune Active l'élagage () avec la méthode C4.5. On coupe les branches mortes pour éviter le surapprentissage de votre modèle !
varImp Génère l'information d'importance des variables (basé sur la réduction de l'indice de Gini). Idéal pour savoir quelle variable est réellement le patron dans vos données.
saveState Spécifie la table dans laquelle générer le modèle binaire (très performant pour un déploiement et scoring à grande échelle).

Préparation des données

Création du jeu de données Iris

Création d'une table CAS de test en utilisant le célèbre jeu de données public Iris disponible dans SAShelp.

1PROC CAS; TABLE.loadTable / caslib="sashelp" path="iris.sashdat" casOut={name="iris", replace=true}; RUN; QUIT;

Exemples d'utilisation

Arbre de décision basique sur les fleurs Iris

Entraînement d'un arbre de décision simple pour classifier les espèces d'iris avec les paramètres obligatoires.

1PROC CAS; decisionTree.dtreeTrain / TABLE={name="iris"} target="Species" inputs={"SepalLength", "SepalWidth", "PetalLength", "PetalWidth"} nominals={"Species"} maxLevel=5 casOut={name="modele_iris", replace=True}; RUN; QUIT;
Résultat Attendu :
L'action génère un arbre de classification stocké dans la table 'modele_iris' et retourne à l'écran les statistiques principales de l'arbre (nombre de feuilles, de nœuds, pertinence).
Arbre de décision avancé avec élagage et importance des variables

On passe aux choses sérieuses : entraînement d'un arbre avec calcul de l'importance des variables (varImp), contrôle fin de la croissance (maxBranch, leafSize) et sauvegarde du code de scoring via aStore.

1PROC CAS; decisionTree.dtreeTrain / TABLE={name="iris"} target="Species" inputs={"SepalLength", "SepalWidth", "PetalLength", "PetalWidth"} nominals={"Species"} maxLevel=7 maxBranch=2 leafSize=5 prune=True varImp=True casOut={name="modele_iris_avance", replace=True} saveState={name="astore_iris", replace=True}; RUN; QUIT;
Résultat Attendu :
Génère un arbre élagué, exporte un modèle binaire robuste prêt au déploiement (table 'astore_iris') et affiche un beau classement d'importance des variables en sortie console.