Tamanho da árvore no aumento da árvore gradiente

10

O aumento da árvore de gradiente, conforme proposto por Friedman, usa as árvores de decisão com Jnós terminais (= folhas) como aprendizes base. Existem várias maneiras de cultivar uma árvore com exatamente Jnós, por exemplo, é possível cultivá-la em profundidade primeiro ou em primeiro lugar, ...

Existe uma maneira estabelecida de como cultivar árvores com Jnós exatamente terminais para aumentar o gradiente de árvores?

Examinei o procedimento de cultivo em árvore do gbmpacote de R e parece que ele expande a árvore mais profundamente e usa uma heurística baseada na melhoria de erros para escolher se deseja expandir o nó filho esquerdo ou direito - está correto?

Peter Prettenhofer
fonte
2
A gbm usa o CART para construir as árvores, um algoritmo bem conhecido dos anos 80. A heurística é chamada de impureza gini, uma escolha bastante padrão para regressão com perda quadrática.
2
Afaik gini impureza é usada para problemas de classificação. No entanto, a questão se refere ao tamanho das árvores.
Peter Prettenhofer
Ele adiciona um ramo por vez. Eu ficaria surpreso se cada divisão seguinte fosse o melhor dos candidatos remanescentes da árvore, não apenas o ramo. Há momentos em que os dados não suportam um número exato - como quando os dados são muito pequenos para 'J'.
EngrStudent
Como o @EngrStudent disse, você não pode forçar um número preciso de nós. No entanto, você tem algum controle sobre um limite superior no número de nós. gbmpossui um parâmetro n.minobsinnodeque controla o número mínimo de objetos por nó. Obviamente, o número de nós é menor ou igual a NumberOfPoints / n.minobsinnode
G5W
Se eu estivesse procurando por folhas 'J', construiria completamente a árvore e, assumindo que havia mais de J, podaria até J. Isso me daria nós 'J', e eles seriam os mais divisões informativas - seria o modelo CART mais saudável possível. Se não houver divisões suficientes, eu poderia dividir aleatoriamente os domínios para obter 'J', mas eles seriam espúrios e um tanto triviais. Eu poderia olhar para a distribuição de valor dentro da folha e usar uma aproximação baseada em CDF, mas isso se afastaria do modelo de média por folha.
EngrStudent

Respostas:

2

A solução em R's gbmnão é típica.

Outros pacotes, como scikit-learnou LightGBMusam os chamados (no scikit-learn) BestFirstTreeBuilder, quando o número de folhas é restrito. Ele suporta uma fila de prioridade de todas as folhas e a cada iteração divide a folha que traz a melhor diminuição de impureza. Portanto, não é nem a profundidade nem a largura em primeiro lugar, mas um terceiro algoritmo, baseado em cálculos nas folhas.

ii

David Dale
fonte