Comment inclure un terme d'interaction dans un modèle de forêt aléatoire

9

J'utilise la fonction randomForestdans le randomForestpackage de R pour faire une régression. Cependant, lorsque j'essaie d'inclure un terme d'interaction dans les codes suivants:

library(MASS)
library(randomForest)
Boston_f <- within(Boston, factor(rad))
mdl <- randomForest(lstat ~ rad * . , data = Boston_f)

Le résultat mdl$terminclut une interaction, mais si je regarde dans les arbres qui mdlutilisent,

getTree(mdl, 1, T)

Je ne trouve aucune variable divisée en utilisant le terme d'interaction.

Est-ce que quelqu'un sait comment inclure le terme d'interaction en utilisant randomForestou une autre fonction?

Yifei Liu
la source
1
Bien que cette question concerne le code R, je pense qu'elle est motivée par un malentendu statistique / ML. Lorsque cela est résolu, les aspects spécifiques au code R seront rendus sans objet. En tant que tel, je pense que cela devrait rester ouvert.
gung - Réintégrer Monica
Les questions uniquement sur le fonctionnement des logiciels sont hors sujet ici, mais vous pouvez avoir une vraie question statistique enterrée ici. Vous souhaiterez peut-être modifier votre question pour clarifier le problème statistique sous-jacent. Vous pouvez constater que lorsque vous comprenez les concepts statistiques impliqués, les éléments spécifiques au logiciel sont évidents ou au moins faciles à obtenir à partir de la documentation.
gung - Rétablir Monica

Réponses:

12

Les modèles basés sur des arbres considèrent les variables de manière séquentielle, ce qui les rend pratiques pour considérer les interactions sans les spécifier. Les interactions utiles pour la prédiction seront facilement détectées avec une forêt suffisamment grande, il n'est donc pas vraiment nécessaire d'inclure un terme d'interaction explicite.

Si vous pensez que l'interaction est importante, vous pouvez créer manuellement le terme d'interaction (par exemple, en définissant votre formulaau sein de la model.framefonction, ce qui créera de nouvelles colonnes pour vos termes d'interaction). Pourtant, dans votre cas, cela doublerait presque le nombre de variables, car vous créez des interactions entre radet toutes les autres fonctionnalités, donc c'est probablement mal avisé.

Voir également Inclure les termes d'interaction dans la forêt aléatoire qui démontre la capacité inhérente des forêts aléatoires à détecter les variables en interaction par rapport aux méthodes linéaires.

Michael Veale
la source