Estou usando a função randomForest
no randomForest
pacote de R para fazer uma regressão. No entanto, quando estou tentando incluir um termo de interação nos seguintes códigos:
library(MASS)
library(randomForest)
Boston_f <- within(Boston, factor(rad))
mdl <- randomForest(lstat ~ rad * . , data = Boston_f)
O resultado mdl$term
inclui interação, mas se eu espiar as árvores que mdl
estão usando,
getTree(mdl, 1, T)
Não consigo encontrar nenhuma variável dividida usando o termo de interação.
Alguém sabe como incluir termo de interação usando randomForest
ou outra função?
r
interaction
random-forest
Yifei Liu
fonte
fonte
Respostas:
Os modelos baseados em árvore consideram variáveis sequencialmente, o que as torna úteis para considerar as interações sem especificá-las. As interações úteis para previsão serão facilmente capturadas com uma floresta grande o suficiente, portanto, não há necessidade real de incluir um termo de interação explícito.
Se você acredita que a interação é importante, você pode criar manualmente o termo de interação (por exemplo, definindo seu
formula
dentro damodel.frame
função, o que criará novas colunas para seus termos de interação). No entanto, no seu caso, isso quase dobraria o número de variáveis, à medida que você cria interações entrerad
e todos os outros recursos, portanto é provavelmente desaconselhável.Consulte também Incluindo termos de interação na floresta aleatória, que demonstra a capacidade inerente da Random Forests de detectar variáveis interagentes em comparação com métodos lineares.
fonte