O que é o algoritmo XGBoost?

O XGBoost ou o Extreme Gradient boost é um algoritmo de aprendizado de máquina usado para a implementação de árvores de decisão de aumento de gradiente. Por que árvores de decisão? Quando falamos de dados não estruturados, como imagens, dados de texto não estruturados, etc., os modelos de RNA (rede neural artificial) parecem residir no topo quando tentamos prever. Enquanto quando falamos de dados estruturados / semiestruturados, as árvores de decisão são atualmente as melhores. O XGBoost foi projetado basicamente para melhorar a velocidade e o desempenho dos modelos de aprendizado de máquina e serviu muito bem ao objetivo.

Trabalho do algoritmo XGBoost

O XGBoost está tendo um algoritmo de aprendizado em árvore, bem como o aprendizado de modelo linear, e, por isso, é capaz de fazer computação paralela na máquina única.

Isso torna o algoritmo XGBoost 10 vezes mais rápido que qualquer um dos algoritmos de aumento de gradiente existentes.

O XGBoost e os GBMs (ou seja, máquinas de aumento de gradiente) usam métodos de árvore usando a arquitetura de descida de gradiente.

A área em que o XGBoost deixa os outros GBMs para trás é a área de otimização do sistema e aprimoramentos sobre os algoritmos.

Vamos ver isso em detalhes:

Otimização do sistema:

1. Poda de árvores - O algoritmo XGBoost usa a abordagem de profundidade primeiro, diferentemente do critério de parada para divisão de árvores usado pelo GBMS, que é ganancioso por natureza e também depende do critério de perda negativa. Em vez disso, o XGBoost usa o recurso / parâmetro de profundidade máxima e, portanto, remove a árvore em uma direção inversa.

2. Paralelização - O processo de construção em árvore sequencial é realizado usando a implementação paralelizada no algoritmo XGBoost. Isso é possível devido aos loops externos e internos que são intercambiáveis. O loop externo lista os nós das folhas de uma árvore enquanto o loop interno calcula os recursos. Além disso, para que o loop externo inicie, o loop interno deve ser concluído. Esse processo de alternância melhora o desempenho do algoritmo.

3. Otimização de hardware - A otimização de hardware também foi considerada durante o design do algoritmo XGBoost. Buffers internos são alocados para cada um dos encadeamentos para armazenar as estatísticas de gradiente.

Aprimoramentos algorítmicos:

  • Consciência da escassez - O XGBoost é conhecido por lidar com todos os tipos diferentes de padrões de escassez com muita eficiência. Esse algoritmo aprende o valor ausente do ninho vendo a perda de treinamento.
  • Regularização - Para evitar o super ajuste, ele corrige modelos mais complexos implementando a regularização LASSO (também chamada L1) e Ridge (também chamada L2).
  • Validação cruzada - O algoritmo XGBoost está tendo recursos internos de validação cruzada que estão sendo implementados a cada iteração na criação do modelo. Isso evita a necessidade de calcular o número de iterações de reforço necessárias.
  • Esboço quantil ponderado distribuído - O algoritmo XGBoost usa o esboço quantil ponderado distribuído para obter o número ideal de pontos de divisão entre os conjuntos de dados ponderados

Recursos do XGBoost

Embora o XGBoost tenha sido projetado para melhorar muito a velocidade e o desempenho dos modelos de aprendizado de máquina, ele também oferece um bom número de recursos avançados.

A) Recursos do modelo

Recursos como o de um sci-kit aprendem a regularização e a implementação da linguagem R são suportados pelo XGBoost. Os principais métodos de aumento de gradiente suportados são:

  • Reforço estocástico de gradiente - Os níveis de coluna, linha e coluna por divisão podem ser subamostrados.
  • Reforço de gradiente
  • Reforço regularizado de gradiente - O XGBoost corrige modelos mais complexos implementando o LASSO (também chamado L1) e a regularização de Ridge (também chamada L2).

B) Recursos do sistema

Os recursos do sistema incluem:

1. Computação distribuída - Esse recurso é usado para o treinamento de modelos muito grandes, implementando um cluster de máquinas.

2. Paralelização - Durante o treinamento, todos os núcleos da CPU são utilizados para paralelização da construção da árvore

3. Otimização de cache - Os algoritmos e as estruturas de dados são armazenados em cache para fazer o melhor uso do hardware.

4. Fora da computação principal - Para os conjuntos de dados que não cabem na memória, o XGBoost implica a computação principal.

C) Recursos do algoritmo

Um dos principais objetivos do algoritmo XGBoost era fazer o melhor uso de todos os recursos disponíveis. Alguns dos principais recursos algorítmicos do XGBoost são:

  • Estrutura de blocos - Esse recurso é usado para suportar a construção de árvores em paralelismo.
  • Consciência esparsa - Quando os valores estão ausentes no conjunto de dados, esse recurso cuida dele automaticamente.
  • Treinamento contínuo - Quando o modelo estiver pronto com os novos dados, ele poderá ser aprimorado ainda mais usando esse recurso.

Por que usar o XGBoost?

O principal objetivo que o XGBoost serve é:

  • Velocidade de Execução
  • Desempenho do modelo

Vamos discutir os dois.

1. Velocidade de Execução

Quando comparamos o XGBoost com outros algoritmos de aumento de gradiente, o XGBoost se mostra realmente rápido, aproximadamente 10 vezes mais rápido que outras implementações.

Szilard Pafka realizou alguns experimentos direcionados para avaliar a velocidade de execução de diferentes algoritmos de implementação de florestas aleatórias. Abaixo está um instantâneo dos resultados do experimento:

Aconteceu que o XGBoost foi o mais rápido. Mais leitura pode ser encontrada aqui

2. Desempenho do Modelo

Quando falamos de dados não estruturados, como imagens, dados de texto não estruturados, etc., os modelos de RNA (rede neural artificial) parecem residir no topo quando tentamos prever. Embora quando falamos de dados estruturados / semiestruturados, as árvores de decisão atualmente sejam as melhores e quando implementadas usando o XGBoost, nenhum outro algoritmo de impulso pode superar isso a partir de agora.

O algoritmo usado pelo XGboost

O algoritmo XGBoost usa o algoritmo da árvore de decisão para aumentar o gradiente.

O método de aumento de gradiente cria novos modelos que executam a tarefa de prever os erros e os resíduos de todos os modelos anteriores, que, por sua vez, são adicionados juntos e, em seguida, a previsão final é feita.

Conclusão: Algoritmo XGBoost

Neste algoritmo XGBoost, aprendemos sobre o algoritmo XGBoost usado para aprendizado de máquina. Em seguida, vimos o funcionamento desse algoritmo, suas principais características e por que ele é uma escolha perfeita para implementar árvores de decisão que aumentam gradiente.

Artigos recomendados

Este foi um guia para o algoritmo XGBoost. Aqui discutimos seu conceito, recursos, uso para aprendizado de máquina, trabalho de um algoritmo no XGBoost. Você também pode consultar os seguintes artigos para saber mais -

  1. PNL em Python
  2. Algoritmo de rastreamento de raios
  3. Algoritmo de assinatura digital
  4. Perguntas da entrevista de algoritmo
  5. Criptografia de Assinatura Digital

Categoria: