O aumento da árvore de gradiente, conforme proposto por Friedman, usa as árvores de decisão com J
nós terminais (= folhas) como aprendizes base. Existem várias maneiras de cultivar uma árvore com exatamente J
nós, por exemplo, é possível cultivá-la em profundidade primeiro ou em primeiro lugar, ...
Existe uma maneira estabelecida de como cultivar árvores com J
nós exatamente terminais para aumentar o gradiente de árvores?
Examinei o procedimento de cultivo em árvore do gbm
pacote 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?
gbm
possui um parâmetron.minobsinnode
que controla o número mínimo de objetos por nó. Obviamente, o número de nós é menor ou igual a NumberOfPoints / n.minobsinnodeRespostas:
A solução em R's
gbm
não é típica.Outros pacotes, como
scikit-learn
ouLightGBM
usam 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.fonte