Venho brincando com florestas aleatórias para regressão e estou tendo dificuldade em descobrir exatamente o que as duas medidas de importância significam e como elas devem ser interpretadas.
A importance()
função fornece dois valores para cada variável: %IncMSE
e IncNodePurity
. Existem interpretações simples para esses 2 valores?
Em IncNodePurity
particular, isso é simplesmente a quantidade que o RSS aumenta após a remoção dessa variável?
?importance
? Há uma explicação lá sobre o que ambas as medidas dizer ...Respostas:
O primeiro pode ser 'interpretado' da seguinte forma: se um preditor é importante no seu modelo atual, a atribuição de outros valores para esse preditor aleatoriamente, mas 'realisticamente' (ou seja: permutando os valores desse preditor no seu conjunto de dados), deve ter uma influência negativa na previsão, ou seja: usar o mesmo modelo para prever a partir de dados iguais, exceto para uma variável, deve fornecer previsões piores.
Então, você toma uma medida preditiva (MSE) com o conjunto de dados original e, em seguida, com o conjunto de dados 'permutado' e os compara de alguma forma. Uma maneira, principalmente porque esperamos que o MSE original seja sempre menor, a diferença pode ser tomada. Por fim, para tornar os valores comparáveis em relação às variáveis, eles são dimensionados.
Para o segundo: em cada divisão, é possível calcular quanto essa divisão reduz a impureza do nó (para árvores de regressão, de fato, a diferença entre o RSS antes e depois da divisão). Isso é resumido em todas as divisões para essa variável, em todas as árvores.
Nota: uma boa leitura é Elements of Statistical Learning de Hastie, Tibshirani e Friedman ...
fonte
As métricas de importância da floresta aleatória, conforme implementadas no pacote randomForest em R, apresentam peculiaridades, pois os preditores correlacionados obtêm valores de baixa importância.
http://bioinformatics.oxfordjournals.org/content/early/2010/04/12/bioinformatics.btq134.full.pdf
Eu tenho uma implementação modificada de florestas aleatórias no CRAN que implementa sua abordagem de estimar valores empíricos de p e taxas de falsas descobertas, aqui
http://cran.r-project.org/web/packages/pRF/index.html
fonte
caret::train(method="rf", importance = TRUE, ...)
??