Arbres de décision et régression - Les valeurs prévues peuvent-elles être en dehors de la plage des données d'entraînement?

11

En ce qui concerne les arbres de décision, la valeur prédite peut-elle se situer en dehors de la plage des données de formation?

Par exemple, si la plage de l'ensemble de données d'apprentissage de la variable cible est 0-100, lorsque je génère mon modèle et l'applique à autre chose, mes valeurs peuvent -5? ou 150?

Étant donné que ma compréhension de la régression de l'arbre de décision est qu'elle est toujours basée sur des règles - progression gauche / droite et qu'au bas de l'arbre dans l'ensemble d'entraînement, elle ne peut jamais voir une valeur en dehors d'une certaine plage, elle ne pourra jamais le prédire?

user3788557
la source
1
Pour une question similaire sur les arbres boostés par le gradient, voir stats.stackexchange.com/questions/304962/…
Adrian

Réponses:

10

Vous avez tout à fait raison: les arbres de décision classiques ne peuvent pas prédire des valeurs en dehors de la plage historiquement observée. Ils n'extrapoleront pas.

Il en va de même pour les forêts aléatoires.

Théoriquement, vous voyez parfois des discussions sur des architectures un peu plus élaborées (botaniques?), Où les feuilles de l'arbre ne donnent pas une valeur unique , mais contiennent une régression simple , par exemple, régressant la variable dépendante sur une variable indépendante numérique particulière. Naviguer dans l'arborescence vous donnerait un ensemble de règles sur quel IV numérique pour régresser le DV dans quel cas. Dans un tel cas, cette régression de «niveau inférieur» pourrait être extrapolée pour donner des valeurs non encore observées.

Cependant, je ne pense pas que les bibliothèques d'apprentissage automatique standard offrent cette structure un peu plus complexe (j'ai récemment cherché cela dans les vues de tâches CRAN pour R), bien qu'il ne devrait vraiment y avoir rien de complexe à ce sujet. Vous pourrez peut-être implémenter votre propre arbre contenant des régressions dans les feuilles.

Stephan Kolassa
la source
1
J'ai peu lu sur mobForest qui prend en charge la régression des feuilles dans R, stats.stackexchange.com/questions/48475/mobforest-r-package
Soren Havelund Welling
1
@ SorenHavelundWelling: cela semble intéressant. Merci pour le pointeur!
Stephan Kolassa
1
L'un des premiers algorithmes à fournir des modèles de régression linéaire dans les feuilles d'un arbre était le M5 de Quinlan, dont une approximation est disponible dans M5P () dans Weka (interfacé dans R via RWeka). Un algorithme non biaisé pour le problème, appelé GUIDE, a d'abord été suggéré par Loh. Les fichiers binaires de son package autonome sont sur son site Web. Enfin, notre algorithme de partitionnement récursif basé sur un modèle (MOB) englobe divers de ces modèles. Il est disponible dans le package R partykit: mob () est l'outil générique et lmtree () et glmtree () sont son adaptation aux arbres avec des modèles linéaires (généralisés) dans les feuilles.
Achim Zeileis
2
@SorenHavelundWelling: malheureusement, le mobForestpackage a été supprimé du CRAN . Je vais jeter un oeil à l' partykitensemble que Achim Zeileis recommandé .
Stephan Kolassa
1
Juste un avertissement que mobForest est de retour sur CRAN: cran.r-project.org/web/packages/mobForest/index.html
mkt - Reinstate Monica
6

Consultez également cubist dans le package caret. Il construit des régressions linéaires dans les nœuds terminaux et peut extrapoler les prévisions au-dessus et au-dessous de la plage de valeurs de réponse dans les données d'apprentissage. Les nœuds terminaux peuvent également être moyennés sur la base des voisins les plus proches fournis en tant qu'hyperparamètre, de sorte qu'il a le potentiel de fournir des prévisions de validation croisée extrêmement précises.

Scott Worland
la source