Estou tentando entender as principais diferenças entre GBM e XGBOOST. Tentei pesquisar no google, mas não consegui encontrar boas respostas que explicassem as diferenças entre os dois algoritmos e por que o xgboost quase sempre tem um desempenho melhor que o GBM. O que torna o XGBOOST tão rápido?
40
Respostas:
Citação do autor de
xgboost
:Edit: Existe um guia detalhado do xgboost que mostra mais diferenças.
Referências
https://www.quora.com/What-is-the-difference-between-the-R-gbm-gradient-boosting-machine-and-xgboost-extreme-gradient-boosting
https://xgboost.readthedocs.io/en/latest/tutorials/model.html
fonte
Além da resposta dada pelo Icyblade, os desenvolvedores do xgboost fizeram vários aprimoramentos importantes no desempenho de diferentes partes da implementação, que fazem uma grande diferença na velocidade e na utilização da memória:
Na minha experiência ao usar GBM e xgboost ao treinar grandes conjuntos de dados (mais de 5 milhões de registros), experimentei uma utilização de memória significativamente reduzida (em R) para o mesmo conjunto de dados e achei mais fácil usar vários núcleos para reduzir o tempo de treinamento.
fonte
Uma diferença muito importante é a
xgboost
implementação do DART, a regularização de abandono para árvores de regressão .Referências
Rashmi, KV e Gilad-Bachrach, R. (2015). Dardo: os desistentes atendem a várias árvores de regressão aditiva. pré-impressão do arXiv arXiv: 1505.01866.
fonte
Eu acho que a diferença entre o aumento do gradiente e o Xgboost está no xgboost, o algoritmo se concentra na potência computacional, paralelizando a formação de árvores que se pode ver neste blog .
O aumento de gradiente se concentra apenas na variação, mas não na troca entre viés, onde, como o aumento de xg, também pode se concentrar no fator de regularização.
fonte
A implementação do XGBoost é incorreta. Falhava silenciosamente ao treinar na GPU na v 082 . Isso aconteceu comigo também na v 0.90 , portanto o problema ainda não foi resolvido e a "correção" fornecida no GitHub não funcionou para mim.
O LGBM 2.3.1 funciona como um encanto imediato , embora a instalação exija um pouco mais de esforço. Até agora, não há problemas de treinamento em GPU.
Sobre o XGBoost ser " tão rápido ", você deve dar uma olhada nesses benchmarks .
fonte