Existem várias implementações da família de modelos GBDT, como:
- GBM
- XGBoost
- LightGBM
- Catboost.
Quais são as diferenças matemáticas entre essas diferentes implementações?
O Catboost parece ter um desempenho superior às outras implementações, mesmo usando apenas seus parâmetros padrão de acordo com essa marca de referência , mas ainda é muito lento.
Meu palpite é que o catboost não usa as variáveis dumificadas, então o peso dado a cada variável (categórica) é mais equilibrado em comparação com as outras implementações, para que as variáveis de alta cardinalidade não tenham mais peso que as outras. Permite que o categórico fraco (com baixa cardinalidade) entre em algumas árvores, resultando em melhor desempenho. Fora isso, não tenho mais explicações.
Respostas:
https://arxiv.org/abs/1706.09516
Você quer ver este artigo em inglês da equipe Yandex sobre a singularidade matemática do CATBoost.
Eu o li brevemente, e entre poucas coisas que pude entender rapidamente foi o fato de que eles não usam os resíduos obtidos no TRAIN para fazer o TRAIN , pois esses resíduos criam um viés otimista da qualidade do aprendizado. ( Atualização: essa novidade traz uma maneira de combater o sobreajuste, que é uma das razões pelas quais o algoritmo funcionou melhor em comparação com seus análogos, além de várias maneiras de pré-processar variáveis categóricas).
Sinto muito por não lhe dar uma resposta específica e completa.
Primeiro, sugiro que você leia um artigo de Friedman sobre a Gradient Boosting Machine aplicada a modelos de regressores lineares, classificadores e árvores de decisão em particular. https://statweb.stanford.edu/~jhf/ftp/trebst.pdf
Eu não iria nos detalhes aqui. É apenas uma boa leitura, cobrindo vários tipos de perda (L) e além do conceito de importância variável. É claro que este é um documento fundamental da implementação do método de uma descida no espaço de funções (modelos de baixo nível), em vez de parâmetros na busca da minimização de perdas.
Se você olhar aqui: https://arxiv.org/pdf/1603.02754.pdf
Você encontra uma vinheta matemática para o modelo XGBoost de Tianqi Chen et al. Agora isso se torna interessante. Alguns desvios matemáticos desse modelo do GBM de Friedman clássico são:
Até este ponto: procure aqui uma implementação da perda de quantis no CATBoost, que é útil e fornece a primeira e a segunda derivadas: https://github.com/catboost/catboost/blob/master/catboost/libs/algo/ error_functions.h
Embora não seja possível encontrar essa útil função de perda L1 no XGBoost, você pode tentar comparar a implementação do Yandex com algumas das funções personalizadas de perda criadas para o XGB.
Considere este link: https://tech.yandex.com/catboost/doc/dg/concepts/algorithm-main-stages_cat-to-numberic-docpage/#algorithm-main-stages_cat-to-numberic
Eles oferecem uma variedade de maneiras de alimentar recursos categóricos para o treinamento do modelo, além de usar a abordagem one-hot antiga e conhecida. Diminuir as dimensões de um espaço de entrada sem perder muita informação é uma das possíveis razões pelas quais o modelo ajustado é menos adaptado.
Terminei. Eu não uso o LightGBM, por isso não posso lançar nenhuma luz sobre ele.
fonte