Como escolher o número de árvores em um modelo de regressão generalizada impulsionada?

11

Existe uma estratégia para escolher o número de árvores em um GBM? Especificamente, o ntreesargumento em R's gbmfunção.

Não vejo por que você não deve definir ntreeso valor mais alto possível. Percebi que um número maior de árvores reduz claramente a variabilidade dos resultados de vários GBMs. Eu não acho que um número alto de árvores levaria a sobreajuste.

Alguma ideia?

wcampbell
fonte

Respostas:

3

Este é o GBM:

" Eu não acho que ... " foi a primeira parte perigosa de muitas frases.

Bom o suficiente não tem sentido sem uma medida de bondade, uma rubrica.

Quais são as medidas de bondade para qualquer outro método?

  • Diferença entre modelo e dados (sse, ...)
  • Divergência de erro em um conjunto de validação (erro de treinamento x erro de teste)
  • Contagem de parâmetros para proporção de amostras (a maioria das pessoas gosta de 5 amostras por parâmetro ou 30 amostras por parâmetro)
  • Validação cruzada (métodos de conjunto sobre divergência de testes de erro)

Como uma rede neural, ou spline, é possível executar interpolação linear por partes nos dados e obter um modelo que não pode generalizar. Você precisa desistir de alguns dos "erros baixos" em troca da aplicabilidade geral - generalização.

Mais links:

EngrStudent
fonte
2

Encontrei algumas dicas sobre o problema: http://cran.r-project.org/web/packages/dismo/vignettes/brt.pdf

A gbm.stepfunção pode ser usada para determinar o número ideal de árvores. Ainda não sei ao certo o que faz com que o desvio do modelo aumente após um certo número de árvores, por isso ainda estou disposto a aceitar uma resposta que responda a essa parte da pergunta!

wcampbell
fonte
2
Overfitting causa o aumento. A maioria dos métodos bons cria um conjunto de validação e usa-o para testar o modelo, mas não para atualizá-lo. Isso permite a detecção do início do excesso de ajuste.
precisa saber é o seguinte
0

Este é o guia de trabalho para aumentar as árvores de regressão de Elith et al .: http://onlinelibrary.wiley.com/doi/10.1111/j.1365-2656.2008.01390.x/full Muito útil!

Você deve pelo menos usar 1000 árvores. Até onde eu entendi, você deve usar a combinação de taxa de aprendizado, complexidade e número de árvores que obtém o erro preditivo mínimo. Valores menores da taxa de aprendizado levam a um risco maior de treinamento para o mesmo número de iterações, enquanto cada iteração reduz o risco de treinamento. Se o número de árvores for grande o suficiente, o risco poderá ser arbitrariamente pequeno (veja: Hastie et al., 2001, "Os Elementos de Aprendizagem Estatística, Mineração de Dados, Inferência e Previsão" ).

V.Vetter
fonte
É verdade que Elith et al. sugerir como regra geral o uso de 1000 árvores. No entanto, isso se baseia em uma análise detalhada da estabilidade preditiva para o conjunto de dados específico usado no artigo. Parece improvável que o mesmo número funcione para qualquer conjunto de dados possível. Talvez você possa expandir um pouco sua resposta, fornecendo alguns detalhes sobre a análise que eles realizaram, principalmente no Apêndice S1.
DeltaIV
0

Como é comum em alguns algoritmos de aprendizado de máquina, o Boosting está sujeito ao trade-off de variação de polarização em relação ao número de árvores. Em termos gerais, essa troca diz a você que: (i) os modelos fracos tendem a ter alto viés e baixa variação: são muito rígidos para capturar variabilidade no conjunto de dados de treinamento, portanto, também não terão bom desempenho no conjunto de testes (teste alto erro) (ii) modelos muito fortes tendem a ter um viés baixo e uma alta variação: são muito flexíveis e superestimam o conjunto de treinamento; portanto, no conjunto de teste (como os pontos de dados são diferentes do conjunto de treinamento), eles também não terão bom desempenho (erro de teste alto)

O conceito de Impulsionar árvores é começar com árvores rasas (modelos fracos) e continuar adicionando mais árvores rasas que tentam corrigir as fragilidades das árvores anteriores. À medida que você faz esse processo, o erro de teste tende a diminuir (porque o modelo geral fica mais flexível / poderoso). No entanto, se você adicionar muitas dessas árvores, começará a sobrescrever os dados de treinamento e, portanto, o erro de teste aumentará. A validação cruzada ajuda a encontrar o ponto ideal

Frederico Lopes
fonte