Quais são algumas diretrizes úteis para os parâmetros GBM?

31

Quais são algumas diretrizes úteis para testar parâmetros (por exemplo, profundidade de interação, filho pequeno, taxa de amostragem etc.) usando o GBM?

Digamos que tenho 70-100 recursos, uma população de 200.000 e pretendo testar a profundidade de interação de 3 e 4. Claramente, preciso fazer alguns testes para ver qual combinação de parâmetros se comporta melhor fora da amostra. Alguma sugestão sobre como abordar esse design de teste?

Ram Ahluwalia
fonte

Respostas:

34

O pacote de interpolação pode ajudá-lo a otimizar a escolha do parâmetro para o seu problema. A vinheta caretTrain mostra como ajustar os parâmetros gbm usando a validação cruzada repetida em 10 vezes - outras abordagens de otimização estão disponíveis, todas elas podem ser executadas em paralelo usando o pacote foreach. Use vignette("caretTrain", package="caret")para ler o documento.

O pacote suporta ajuste shrinkage, n.treese interaction.depthparâmetros para o modelo gbm, embora você possa adicionar seus próprios.

Para heurísticas, esta é minha abordagem inicial:

shrinkage: Tão pequeno quanto você tem tempo (o manual gbm tem mais sobre isso, mas em geral você nunca pode dar errado com um valor menor). Seu conjunto de dados é pequeno, então eu provavelmente começaria com 1e-3

n.trees: Geralmente desenvolvo um modelo inicial adicionando mais e mais árvores até gbm.perfdizer que tenho o suficiente (na verdade, normalmente 1,2 vezes esse valor) e depois o uso como um guia para análises adicionais.

interaction.depth: você já tem uma idéia sobre isso. Tente valores menores também. O valor máximo é mínimo (sqrt (NCOL (dados)).

n.minobsinnode: Acho muito importante ajustar essa variável. Você não o quer tão pequeno que o algoritmo encontre muitos recursos espúrios.

Allan Engelhardt
fonte