Estou tentando entender o que é melhor (mais preciso, principalmente em problemas de classificação)
Pesquisei artigos comparando o LightGBM e o XGBoost, mas encontrei apenas dois:
- https://medium.com/implodinggradients/benchmarking-lightgbm-how-fast-is-lightgbm-vs-xgboost-15d224568031 - que trata apenas de velocidade, mas não de precisão.
- https://github.com/Microsoft/LightGBM/wiki/Experiments - que é dos autores do LightGBM e não surpreende que o LightGBM ganhe lá.
Nos meus testes, recebo praticamente a mesma AUC para ambos os algoritmos, mas o LightGBM é executado de 2 a 5 vezes mais rápido.
Se o LGBM é tão legal, por que não ouço muito sobre isso aqui e no Kaggle :)
Respostas:
O LightGBM é uma ótima implementação que é semelhante ao XGBoost, mas varia de algumas maneiras específicas, especialmente na maneira como cria as árvores.
Ele oferece alguns parâmetros diferentes, mas a maioria deles é muito parecida com a do XGBoost.
Se você usar os mesmos parâmetros, quase sempre obtém uma pontuação muito próxima. Na maioria dos casos, o treinamento será 2-10 vezes mais rápido.
Por que mais pessoas não o usam então?
O XGBoost já existe há mais tempo e já está instalado em muitas máquinas. O LightGBM é bastante novo e não tinha um wrapper Python no início. A versão atual é mais fácil de instalar e usar, portanto, não há obstáculos aqui.
Muitos dos usuários mais avançados do Kaggle e sites similares já usam o LightGBM e, para cada nova competição, obtém cada vez mais cobertura. Ainda assim, os scripts iniciais geralmente são baseados no XGBoost, pois as pessoas apenas reutilizam seu código antigo e ajustam alguns parâmetros. Tenho certeza de que isso aumentará assim que houver mais alguns tutoriais e guias sobre como usá-lo (a maioria dos guias que não são do ScikitLearn atualmente se concentra no XGBoost ou em redes neurais).
fonte
O XGBoost agora tem uma opção de binning de histograma para o crescimento de árvores semelhante ao que o LightGBM usa. Ele fornece o mesmo nível de aceleração e características de precisão semelhantes, embora os algoritmos ainda não sejam exatamente os mesmos.
Existem alguns gráficos e tabelas aqui mostrando como eles estão em cima um do outro agora. https://github.com/dmlc/xgboost/issues/1950
Para ser justo, o LightGBM cita seus próprios testes de desempenho, mostrando-os ainda superando o XGBoost (hist), embora não mais por uma ordem de magnitude. https://github.com/Microsoft/LightGBM/blob/master/docs/Experiments.rst#comparison-experiment
fonte