dtreeSplit
Description
L'action `dtreeSplit` permet d'étendre ou de modifier 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 existant en divisant ses nœuds feuilles. Plutôt que de reconstruire un arbre depuis le début, cette action vous permet de faire de la micro-chirurgie sur votre 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). : vous pouvez diviser automatiquement tous les nœuds terminaux selon le meilleur critère, ou bien spécifier un nœud précis à diviser avec vos propres règles. C'est un peu comme sculpter un bonsaï, mais avec des algorithmes ! Elle nécessite la table de données d'entraînement et la table du 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). actuel, et produit un nouveau 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). mis à jour.
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| modelTable | Spécifie la table contenant le modèle d'arbre existant à modifier. |
| table | Spécifie la table d'entrée (données d'apprentissage) utilisée pour calculer les nouvelles divisions. |
| target | Spécifie la variable cible (réponse) de l'arbre de décision. |
| inputs | Spécifie les variables prédictives (caractéristiques) à utiliser dans l'analyse. |
| casOut | Spécifie la table où enregistrer le nouveau modèle généré. |
| nodeId | Spécifie les identifiants (ID) des nœuds feuilles à diviser. Si ignoré, tous les nœuds terminaux valides seront divisés. |
| userDefinedSplit | Permet de forcer manuellement une règle de division spécifique pour un nœud unique. |
| crit | Spécifie le critère mathématique de séparation (GINI, VARIANCE, CHAID, etc.). |
| prune | Indique s'il faut appliquer une méthode d'élagage (comme C4.5) suite aux divisions. |
Préparation des données
Génération de données et d'un modèle initial
Création d'une table avec une cible binaire et deux caractéristiques, suivie de l'entraînement d'un arbre de base avec `dtreeTrain`.
| 1 | DATA mycas.mydata; drop i; DO i=1 to 1000; y = rand("Uniform") > 0.5; x1 = rand("Normal"); x2 = rand("Uniform"); OUTPUT; END; RUN; PROC CAS; decisionTree.dtreeTrain / TABLE={name="mydata"} target="y" inputs={"x1", "x2"} nominals={"y"} maxLevel=2 casOut={name="mymodel", replace=true}; RUN; QUIT; |
Exemples d'utilisation
Division automatique des nœuds feuilles
Cet exemple prend un arbre existant (de profondeur 2 par exemple) et tente d'ajouter une séparation supplémentaire à chaque nœud terminal.
| 1 | PROC CAS; decisionTree.dtreeSplit / TABLE={name="mydata"} modelTable={name="mymodel"} target="y" inputs={"x1", "x2"} nominals={"y"} casOut={name="mymodel_split", replace=true}; RUN; QUIT; |
Résultat Attendu :
Division ciblée et personnalisée d'un nœud
Ici, nous ciblons le nœud racine (nodeId 0) et le divisons de force en utilisant la variable 'x1' avec un point de coupure à 0.5. Parfait pour ajuster un arbre basé sur l'expertise métier.
| 1 | PROC CAS; decisionTree.dtreeSplit / TABLE={name="mydata"} modelTable={name="mymodel"} target="y" inputs={"x1", "x2"} nominals={"y"} nodeId={0} userDefinedSplit={splitVar="x1", intervalSplit={0.5}} casOut={name="mymodel_custom", replace=true}; RUN; QUIT; |