Régression (non) linéaire à l'arbre de décision des feuilles

8

Est-il courant d'avoir une technique de régression différente aux feuilles d'un arbre de régression (par exemple la régression linéaire)? Je le cherche depuis une heure, mais je ne trouve que des implémentations qui ont une valeur constante aux feuilles des arbres. Y a-t-il une raison pour laquelle cela est / n'est pas courant?

marqram
la source

Réponses:

5

MARS fait cela

Je pense que ce n'est pas plus populaire, c'est qu'une grande partie de la robustesse des ensembles de modèles de style d'arbre de décision vient du fait qu'ils prédisent toujours des valeurs constantes dans la plage qu'ils ont vue.

Les valeurs aberrantes dans les données sont généralement regroupées avec les valeurs normales les plus élevées / les plus basses dans les données de la dernière feuille et ne provoquent pas d'étranges prédictions ou ne jettent pas de coeffichents.

Ils ne souffrent pas autant des problèmes de multicolinéarité que les modèles linéaires.

Vous pouvez migrer pour résoudre ces problèmes dans une implémentation, mais il est probablement plus facile et plus robuste d'ajouter simplement plus d'arbres dans un ensemble via le renforcement ou l'ensachage jusqu'à ce que vous obteniez la fluidité dont vous avez besoin.

Ryan Bressler
la source
5

Il y a eu pas mal de recherches sur ce sujet au cours des dernières décennies, à commencer par les efforts pionniers de Ciampi, suivis par le GUIDE de Loh, puis aussi les arbres fonctionnels de Gama ou l'approche de partitionnement récursif basé sur un modèle que nous avons. Un bon aperçu est donné dans la réponse de @ Momo à cette question: avantage des GLM dans les nœuds terminaux d'un arbre de régression?

Le logiciel correspondant est moins utilisé que les simples arbres à ajustement constant, comme vous pouvez le constater. Cela s'explique en partie par le fait qu'il est plus difficile à écrire - mais aussi plus difficile à utiliser. Il nécessite simplement plus de spécifications qu'un simple modèle CART. Mais un logiciel est disponible (comme indiqué précédemment ici par @marqram ou @Momo à: algorithme d'arbre de régression avec des modèles de régression linéaire dans chaque feuille ). Les progiciels importants incluent:

  • Dans la suite Weka, il y a M5P(M5 ') pour les réponses continues, LMT(arbres de modèle logistique) pour les réponses binaires et FT(arbres fonctionnels) pour les réponses catégorielles. Voir http://www.cs.waikato.ac.nz/~ml/weka/ pour plus de détails. Les deux premières fonctions sont facilement interfacés à travers le paquet de R RWeka.

  • L'implémentation GUIDE de Loh est disponible gratuitement sous forme binaire (mais sans code source) sur http://www.stat.wisc.edu/~loh/guide.html . Il permet de modifier les détails de la méthode par une large gamme d'options de contrôle.

  • Notre algorithme MOB (MOdel-Based recursive partitioning) est disponible dans le package R partykit(successeur duparty implémentation). La mob()fonction vous donne un cadre général, vous permettant de spécifier de nouveaux modèles qui peuvent être facilement ajustés dans les nœuds / feuilles de l'arbre. Interfaces de confort lmtree()et glmtree()qui se combinent mob()avec lm()et glm()sont directement disponibles et illustrées dans vignette("mob", package = "partykit"). Mais d'autres plugins peuvent également être définis. Par exemple, dans /programming/37037445/using-mob-trees-partykit-package-with-nls-model mob() est combiné avec nls(). Mais il existe également des "mafieux" pour différents modèles psychométriques (en psychotree) et pour la régression bêta (en betareg).

Achim Zeileis
la source
3

J'ai trouvé une méthode qui fait exactement cela (un arbre de décision, où les feuilles contiennent une régression linéaire au lieu d'une valeur moyenne). Ils sont appelés arbres modèles [1] et un exemple est l'algorithme M5P [2] de weka. Dans M5P, une régression linéaire est à chaque feuille.

Edit: j'ai trouvé un autre package / modèle qui fait quelque chose de similaire et semble donner de très bons résultats pour mes ensembles de données: cubist. Une implémentation en R est donnée par le paquet cubiste [3]. Cubist ajoute un renforcement de l'assemblage au M5P et ce qu'il appelle des «corrections basées sur l'instance».

[1]: Torgo, L. Modèles fonctionnels pour les feuilles d'arbres de régression. Dans Actes de la 14e Conférence internationale sur l'apprentissage automatique, pp. 385–393. Morgan Kaufmann, 1997.

[2]: M5P http://weka.sourceforge.net/doc.dev/weka/classifiers/trees/M5P.html

[3]: Modèle cubiste Cubiste: modélisation de régression basée sur des règles et des instances https://cran.r-project.org/web/packages/Cubist/index.html

marqram
la source