J'utilise la fonction randomForest
dans le randomForest
package 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$term
inclut une interaction, mais si je regarde dans les arbres qui mdl
utilisent,
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 randomForest
ou une autre fonction?
r
interaction
random-forest
Yifei Liu
la source
la source
Réponses:
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
formula
au sein de lamodel.frame
fonction, 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 entrerad
et 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.
la source