Como interpretar o decréscimo médio na precisão e o decréscimo médio GINI nos modelos de floresta aleatória

34

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

insira a descrição da imagem aqui

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?

FlacoT
fonte
tente dat <- íris [, c (2: 3,5)] e devem obter-VI valores mais elevados
Soren Havelund Welling

Respostas:

26

" É uma declaração sobre o recurso como um todo ou sobre valores específicos dentro do recurso? "

  • A importância da variável "global" é a diminuição média da precisão em todas as previsões validadas cruzadas, quando uma determinada variável é permitida após o treinamento, mas antes da previsão. "Global" está implícito. A importância da variável local é a diminuição média da precisão de cada previsão validada cruzada individualizada. A importância da variável global é a mais popular, pois é um número único por variável, mais fácil de entender e mais robusta, pois é calculada sobre todas as previsões.

" 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? "

  1. floresta de trem
  2. medir a precisão do CV pronto para uso → OOB_acc_base
  3. variável permuta i
  4. medir a precisão do CV pronto para uso → OOB_acc_perm_i
  5. VI_i = - (OOB_acc_perm_i - OOB_acc_base)

- " 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? "

  • Sim. Somente Petal.length e Petal.width possuem uma separação linear quase perfeita. Assim, as variáveis ​​compartilham informações redundantes e permutar apenas uma não obstrui o modelo.

" 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? "

  • Quando um modelo robusto / regularizado é treinado em variáveis ​​redundantes, ele é bastante resistente a permutações em variáveis ​​únicas.

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.

Soren Havelund Welling
fonte
Para interpretação da importância das variáveis ​​além da classificação simples, consulte: "Seleção de variáveis ​​bivariadas para problemas de classificação" -Vivian W. Ng e Leo Breiman digitalassets.lib.berkeley.edu/sdtr/ucb/text/692.pdf
Soren Havelund Welling
Muito obrigado pela sua resposta! Eu já vi alguns lugares descreverem a diminuição média na precisão como o aumento na taxa de erro OOB (uma porcentagem). A fórmula que você postou também parece sugerir uma taxa de erro: (OOB_acc_perm_i - OOB_acc_base). Mas você tem certeza que a redução média na precisão está se referindo ao número de observações classificadas incorretamente?
FlacoT 22/02
1
Lembre-se do menos na frente, pois a importância variável é uma diminuição. Eu não era muito específico com as unidades, elas poderiam ser expressas em% ou proporções / proporções puras, não importa. Mas sim como precisão = 1-error_rate, VI_i = error_rate_perm_i - error_rate_base. Para a regressão, a importância da variável unidade de permutação é tipicamente diminuição da% de variação explicada e a unidade de importância gini é diminuição média do mean_square_error-gain. "Mas você tem certeza de que Diminuição média na precisão está se referindo ao número de observações classificadas incorretamente? " - Não, a precisão é uma fração, não uma contagem.
Soren Havelund Welling 22/02
10

Aqui está a descrição da redução média na precisão (MDA) do manual de ajuda do randomForest:

A primeira medida é calculada a partir da permuta de dados OOB: Para cada árvore, o erro de previsão na parte fora da bolsa dos dados é registrado (taxa de erro para classificação, MSE para regressão). Então o mesmo é feito depois de permutar cada variável preditora. A diferença entre os dois é então calculada sobre todas as árvores e normalizada pelo desvio padrão das diferenças. Se o desvio padrão das diferenças for igual a 0 para uma variável, a divisão não será feita (mas a média é quase sempre igual a 0 nesse caso).

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,

"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?"

  • Média (diminui a precisão das árvores)Desvio padrão (diminui a precisão das árvores)
  • Média (diminui a precisão das árvores)

H0 0:Nós construídos pelo preditor Eu é inútil em qualquer árvore
H1:Nós construídos pelo preditor Eu é útil

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.

Jianyu
fonte
Duas perguntas de acompanhamento: 1. Tem idéia se outros pacotes usam o MDA mais intuitivo descrito pelo @Soren? 2. Se a interpretação do MDA no RandomForest é como uma estatística de teste, existe algo como uma regra geral sobre o que uma estatística de teste suficientemente grande é para rejeitar H0? O MDA segue alguma distribuição conhecida?
FlacoT
1. Desculpe, não tentei nenhum outro pacote. 2. É simplesmente uma estatística de teste. Nem a distribuição é acessível (até onde sei, poucas pessoas examinaram isso) nem o teste em si é significativo - não acho que o teste conclua nada sobre o FOREST, que é o nosso interesse real.
Jianyu
4

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.

user4959
fonte