Estou tendo alguma dificuldade em entender como interpretar a saída de importância variável do pacote Random Forest. A diminuição média na precisão é geralmente descrita como "a diminuição na precisão do modelo ao permutar os valores em cada recurso".
É uma declaração sobre o recurso como um todo ou sobre valores específicos dentro do recurso? Em ambos os casos, a redução média na precisão é o número ou a proporção de observações que são classificadas incorretamente removendo o recurso (ou valores do recurso) em questão do modelo?
Digamos que temos o seguinte modelo:
require(randomForest)
data(iris)
set.seed(1)
dat <- iris
dat$Species <- factor(ifelse(dat$Species=='virginica','virginica','other'))
model.rf <- randomForest(Species~., dat, ntree=25,
importance=TRUE, nodesize=5)
model.rf
varImpPlot(model.rf)
Call:
randomForest(formula = Species ~ ., data = dat, ntree = 25,
proximity = TRUE, importance = TRUE, nodesize = 5)
Type of random forest: classification
Number of trees: 25
No. of variables tried at each split: 2
OOB estimate of error rate: 3.33%
Confusion matrix:
other virginica class.error
other 97 3 0.03
virginica 2 48 0.04
Nesse modelo, a taxa OOB é bastante baixa (cerca de 5%). No entanto, a redução média na precisão do preditor (Petal.Length) com o valor mais alto nessa medida é de apenas 8.
Isso significa que remover o Petal.Length do modelo resultaria apenas em uma classificação incorreta adicional de 8 ou mais observações em média?
Como o comprimento médio da precisão da pétala poderia ser tão baixo, dado que é o mais alto nesta medida e, portanto, as outras variáveis têm valores ainda mais baixos nessa medida?
Respostas:
" É uma declaração sobre o recurso como um todo ou sobre valores específicos dentro do recurso? "
" Em qualquer um dos casos, a redução média na precisão é o número ou a proporção de observações que são classificadas incorretamente removendo o recurso (ou valores do recurso) em questão do modelo? "
- " Isso significa que remover o Petal.Length do modelo resultaria apenas em uma classificação incorreta adicional de 8 ou mais observações em média? "
" Como o decréscimo médio na precisão da pétala pode ser tão baixo, dado que é o mais alto nesta medida e, portanto, as outras variáveis têm valores ainda mais baixos nessa medida? "
Use principalmente a importância das variáveis principalmente para classificar a utilidade de suas variáveis. É difícil fazer uma interpretação clara dos valores absolutos de importância variável.
GINI: A importância de GINI mede o ganho médio de pureza por divisões de uma determinada variável. Se a variável for útil, ela tende a dividir nós rotulados mistos em nós puros de classe única. A divisão por variáveis permutadas não costuma aumentar nem diminuir a pureza do nó. A permutação de uma variável útil tende a apresentar uma diminuição relativamente grande no ganho médio de gini. A importância do GINI está intimamente relacionada à função de decisão local, que a floresta aleatória usa para selecionar a melhor divisão disponível. Portanto, não leva muito tempo extra para calcular. Por outro lado, o ganho médio de gini em divisões locais não é necessariamente o mais útil para medir, ao contrário da mudança no desempenho geral do modelo. A importância de Gini é globalmente inferior à importância variável (baseada na permutação), pois é relativamente mais tendenciosa, mais instável e tende a responder a uma pergunta mais indireta.
fonte
Aqui está a descrição da redução média na precisão (MDA) do manual de ajuda do randomForest:
De acordo com a descrição, a "precisão" no MDA na verdade se refere à precisão de modelos de árvore única , independentemente do fato de estarmos mais preocupados com a taxa de erro da floresta . Tão,
Como observação, o procedimento MDA descrito por Soren é diferente da implementação do pacote randomForest. Está mais próximo do que desejamos de um MDA: a diminuição da precisão de todo o modelo florestal. No entanto, o modelo provavelmente será ajustado de forma diferente sem Petal.Length e dependerá mais de outros preditores. Assim, o MDA de Soren seria muito pessimista.
fonte
Uma recente (postagem do blog) [ https://explained.ai/rf-importance/index.html] de uma equipe da Universidade de São Francisco mostra que as estratégias de importância padrão em R (randomForest) e Python (scikit) não são confiáveis em muitos cenários de dados. Particularmente, a redução média nas métricas de importância da impureza é enviesada quando as variáveis preditoras potenciais variam em sua escala de medição ou número de categorias.
Os artigos e a postagem no blog demonstram como as variáveis contínuas e de alta cardinalidade são preferidas na diminuição média dos rankings de importância da impureza, mesmo que sejam igualmente pouco informativas em comparação com variáveis com menos categorias. Os autores sugerem o uso da importância da permutação em vez do padrão nesses casos. Se as variáveis preditoras em seu modelo são altamente correlacionadas, é sugerida a importância da permutação condicional.
A impureza é enviesada, pois cada vez que um ponto de interrupção é selecionado em uma variável, todos os níveis da variável são testados para encontrar o melhor ponto de interrupção. Variáveis de cardinalidade contínua ou alta terão muito mais pontos de divisão, o que resulta no problema de “múltiplos testes”. Ou seja, existe uma probabilidade mais alta de que, por acaso, essa variável preveja bem o resultado, uma vez que as variáveis em que são tentadas mais divisões aparecerão com mais frequência na árvore.
fonte