Estou tentando entender como o XGBoost funciona. Eu já entendo como as árvores com gradiente aumentado funcionam no sklearn do Python. O que não está claro para mim é se o XGBoost funciona da mesma maneira, mas mais rápido, ou se existem diferenças fundamentais entre ele e a implementação do python.
Quando li este artigo
http://learningsys.org/papers/LearningSys_2015_paper_32.pdf
Parece-me que o resultado final do XGboost é o mesmo da implementação do Python, no entanto, a principal diferença é como o XGboost encontra a melhor divisão a ser feita em cada árvore de regressão.
Basicamente, o XGBoost fornece o mesmo resultado, mas é mais rápido.
Isso está correto ou está faltando alguma outra coisa?
fonte
n_jobs
parâmetro de interface disponível; o processamento paralelo não é possível internamente com a implementação do algoritmo pelo sklearn.Ao contrário do aumento de gradiente do Sklearn, o Xgboost também regulariza a árvore para evitar ajustes excessivos e lida com os valores ausentes com eficiência também. O link a seguir pode ser útil para aprender o xgboost com precisão https://www.youtube.com/watch?v=Vly8xGnNiWs
fonte
O XGboost é a implementação do GBDT com randmização (ele usa amostragem de colunas e amostragem de linhas). A amostragem de linha é possível por não usar todos os dados de treinamento para cada modelo base do GBDT. Em vez de usar todos os dados de treinamento para cada modelo de base, amostramos um subconjunto de linhas e usamos apenas essas linhas de dados para criar cada um dos modelos de base. Isso garante que há uma menor chance de sobreajuste, o que é um problema importante no GBDT simples, que o XGBoost tenta resolver usando essa randomização.
fonte