O Random Forest superajustou?

24

Eu tenho lido sobre florestas aleatórias, mas não consigo realmente encontrar uma resposta definitiva sobre o problema do excesso de ajuste. De acordo com o artigo original de Breiman, eles não devem se superestimar ao aumentar o número de árvores na floresta, mas parece que não há consenso sobre isso. Isso está me criando uma certa confusão sobre o assunto.

Talvez alguém mais experiente que eu possa me dar uma resposta mais concreta ou me indicar a direção certa para entender melhor o problema.

markusian
fonte
3
Todos os algoritmos serão superajustados até certo ponto. Não se trata de escolher algo que não exagere, é considerar cuidadosamente a quantidade de sobreajuste e a forma do problema que você está resolvendo para maximizar métricas mais relevantes.
Indico
11
ISTR de que Breiman tinha uma prova baseada na Lei dos Grandes Números. Alguém descobriu uma falha nessa prova?
JenSCDC
@AndyBlankertz ISTR = internetslang.com/ISTR-meaning-definition.asp ?
Hack-R

Respostas:

22

Todo algoritmo de ML com alta complexidade pode se super-ajustar. No entanto, o OP está perguntando se um RF não será superestimado ao aumentar o número de árvores na floresta.

Em geral, os métodos de conjunto reduzem a variação de previsão para quase nada, melhorando a precisão do conjunto. Se definirmos a variação do erro de generalização esperado de um modelo aleatório individual como:

A partir daqui , a variação do erro de generalização esperado de um conjunto corresponde a:

onde p(x)é o coeficiente de correlação de Pearson entre as previsões de dois modelos aleatórios treinados nos mesmos dados de duas sementes independentes. Se aumentarmos o número de TDs no RF, maior M, a variação do conjunto diminui quando ρ(x)<1. Portanto, a variação de um conjunto é estritamente menor que a variação de um modelo individual.

Em poucas palavras, aumentar o número de modelos aleatórios individuais em um conjunto nunca aumentará o erro de generalização.

tashuhka
fonte
11
Definitivamente, é isso que Leo Breiman e a teoria dizem, mas empiricamente parece que eles definitivamente se superestimam. Por exemplo, atualmente tenho um modelo com CVE 10 vezes maior que 0,02, mas quando medido em relação à verdade básica, o valor mais alto é 0,4. OTOH, se eu reduzir a profundidade e o número da árvore, o desempenho do modelo melhora significativamente.
Hack-R
4
Se você reduzir a profundidade da árvore, é um caso diferente porque você está adicionando regularização, o que diminuirá o ajuste excessivo. Tente plotar o MSE ao aumentar o número de árvores, mantendo o restante dos parâmetros inalterados. Então, você tem MSE no eixo y e num_tress no eixo x. Você verá que, ao adicionar mais árvores, o erro diminui rapidamente e, em seguida, possui um platô; mas nunca aumentará.
tashuhka
9

Convém verificar validação cruzada - um site do stachexchange para muitas coisas, incluindo aprendizado de máquina.

Em particular, esta pergunta (com exatamente o mesmo título) já foi respondida várias vezes. Verifique estes links: /stats//search?q=random+forest+overfit

Mas posso lhe dar uma resposta curta: sim, superapropriação e, às vezes, você precisa controlar a complexidade das árvores em sua floresta ou até podar quando elas crescem demais - mas isso depende da biblioteca usada para construindo a floresta. Por exemplo, randomForestem R você só pode controlar a complexidade

Alexey Grigorev
fonte
3
  1. A floresta aleatória superajustada.
  2. A floresta aleatória não aumenta o erro de generalização quando mais árvores são adicionadas ao modelo. A variação de generalização será zero com mais árvores usadas.

Eu fiz um experimento muito simples. Eu gerei os dados sintéticos:

y = 10 * x + noise

Treinei dois modelos da Random Forest:

  • um com árvores cheias
  • um com árvores podadas

O modelo com árvores completas apresenta menor erro de trem, mas maior erro de teste que o modelo com árvores podadas. As respostas dos dois modelos:

respostas

É uma evidência clara de sobreajuste. Depois, peguei os hiperparâmetros do modelo com sobrecorrente e verifiquei o erro ao adicionar cada árvore da etapa 1. Eu tenho o seguinte enredo:

árvores em crescimento

Como você pode ver, o erro de excesso de ajuste não é alterado ao adicionar mais árvores, mas o modelo é super ajustado. Aqui está o link para o experimento que fiz.

pplonski
fonte
1

DATASET ESTRUTURADO -> ERROS DE OOB INCORRETOS

Eu encontrei um caso interessante de overfitting de RF na minha prática profissional. Quando os dados são estruturados, os ajustes de RF nas observações OOB.

Detalhe:

Tento prever os preços da eletricidade no mercado spot de eletricidade para cada hora (cada linha do conjunto de dados contém parâmetros de preço e sistema (carga, capacidade etc.) para essa hora).
Os preços da eletricidade são criados em lotes (24 preços criados no mercado de eletricidade em uma fixação em um momento).
Portanto, OOB obs para cada árvore são subconjuntos aleatórios de um conjunto de horas, mas se você prevê as próximas 24 horas, faz tudo de uma só vez (no primeiro momento, obtém todos os parâmetros do sistema, então prediz 24 preços, existe uma correção que produz preços), então é mais fácil fazer previsões de OOB e depois para todo o dia seguinte. Obs OOB não estão contidos em blocos de 24 horas, mas dispersos uniformemente, pois, como existe uma autocorrelação de erros de previsão, é mais fácil prever o preço por uma hora que está faltando do que por um bloco inteiro de horas perdidas.

mais fácil de prever em caso de autocorrelação de erro:
conhecido, conhecido, predição, conhecido, predição - caso OBB
mais difícil:
conhecido, conhecido, conhecido, predição, previsão - caso de previsão do mundo real

Espero que seja interessante

Qbik
fonte