Por que a estimativa de erro OOB da floresta aleatória melhora quando o número de recursos selecionados é diminuído?

14

Estou aplicando um algoritmo de floresta aleatória como um classificador em um conjunto de dados de microarrays que são divididos em dois grupos conhecidos com milhares de recursos. Após a execução inicial, analiso a importância dos recursos e executo o algoritmo em árvore novamente com os 5, 10 e 20 recursos mais importantes. Acho que para todos os recursos, top 10 e 20, a estimativa da taxa de erro OOB é 1,19%, enquanto que para os 5 principais recursos é 0%. Isso parece contra-intuitivo para mim, então eu queria saber se você poderia explicar se estou faltando alguma coisa ou se estou usando a métrica errada.

Estou usando o pacote randomForest em R com ntree = 1000, nodesize = 1 e mtry = sqrt (n)

danielsbrewer
fonte
2
Só para esclarecer: você está aplicando RFs de maneira iterativa, ou seja, selecionando os recursos mais bem classificados (de acordo com o índice de Gini ou a diminuição no MSE) de todo o espaço de entrada? Eu sei que os RFs podem não necessariamente melhorar com o aumento do número de árvores, mas o que você está descrevendo parece fazer sentido (os melhores recursos permitem prever com 100% de precisão as amostras OOB), embora haja claramente um risco de sobreajuste ao proceder dessa maneira .
chl
Sim, isso é o que estou fazendo
danielsbrewer
2
@chl, você poderia explicar por que existe o risco de sobreajuste usando apenas cinco recursos?
tashuhka

Respostas:

15

Isso é excesso de seleção de recursos e isso é bem conhecido - veja Ambroise & McLachlan 2002 . O problema é baseado no fato de que a RF é muito inteligente e o número de objetos é muito pequeno. Neste último caso, geralmente é bastante fácil criar atributos aleatoriamente que possam ter boa correlação com a decisão. E quando o número de atributos é grande, você pode estar certo de que alguns totalmente irrelevantes serão preditores muito bons, até o suficiente para formar um cluster que poderá recriar a decisão em 100%, especialmente quando a enorme flexibilidade de RF é considerado. E, assim, torna-se óbvio que, quando instruído a encontrar o melhor subconjunto de atributos possível, o procedimento FS localiza esse cluster.
Uma solução (CV) é fornecida em A & McL, você também pode testar nossa abordagem ao tópico, oO algoritmo Boruta , que basicamente estende o conjunto com "atributos de sombra" feitos aleatoriamente por design e compara sua importância de RF à obtida com atributos reais para julgar quais deles são realmente aleatórios e podem ser removidos; isso é replicado muitas vezes para ser significativo. Boruta é bastante destinado a uma tarefa um pouco diferente, mas, tanto quanto meus testes mostraram, o conjunto resultante está livre do problema de excesso de ajuste do FS.


fonte
2

Eu pensei em adicionar uma explicação intuitiva para esse padrão.

Em cada árvore de decisão que compreende a floresta aleatória, os dados são iterativamente divididos em dimensões únicas. Fundamentalmente, esse procedimento envolve

1) considerando apenas um pequeno subconjunto selecionado aleatoriamente de todas as variáveis ​​explicativas, e

2) selecionar a variável explicativa mais fortemente associada nesse subconjunto de variáveis ​​selecionadas aleatoriamente para dividir os dados.

Portanto, a probabilidade das n variáveis ​​mais importantes serem selecionadas em qualquer nó específico diminui à medida que o número de variáveis ​​explicativas aumenta. Portanto, se adicionarmos um grande número de variáveis ​​que contribuem com pouco ou nenhum poder explicativo, isso automaticamente leva a um aumento na taxa de erro da floresta. Por outro lado, escolher apenas as variáveis ​​mais importantes para inclusão provavelmente levará a uma diminuição na taxa de erro.

As florestas aleatórias são bastante robustas para isso e normalmente requerem uma adição muito grande desses parâmetros de 'ruído' para reduzir significativamente o desempenho.

mkt - Restabelecer Monica
fonte