XGBoost- O que é isso?

XGBoost é um algoritmo de aprendizagem de máquinas baseado em árvores de decisão em conjunto e utiliza uma estrutura de reforço de gradiente. As redes neurais artificiais ultrapassam na sua maioria outras estruturas ou algoritmos ao prever problemas com o texto, imagens e outros dados não estruturados. As coisas são muito diferentes quando se trata de dados tabulares/estruturados médios ou pequenos. Porquê? Porque os algoritmos baseados em árvores de decisão são indiscutivelmente a melhor solução.

O algoritmo XGBoost foi o resultado de um projecto de investigação organizado na Universidade de Washington. Carlos Guestrin e Tianqi Chen apresentaram o seu trabalho na conferência SIGKDD de 2016. Desde então, o XGBoost tornou-se um algoritmo de renome que revolucionou a paisagem de aprendizagem da máquina.

Desde que foi introduzido, este algoritmo recebeu toneladas de créditos, incluindo várias competições de Kaggle. Recebeu também reconhecimento pela sua influência em várias aplicações industriais de ponta. Consequentemente, um enorme grupo de cientistas de dados está a contribuir para diferentes projectos de código aberto relacionados com o XGBoost. O GitHub tem mais de trezentos colaboradores, e trinta e seis centenas comprometem-se até agora. Saiba como este algoritmo se destaca dos outros.

Como o XGBoost se destaca

Uma Vasta Gama de Aplicações

XGBoost permite-lhe utilizar uma vasta gama de aplicações para resolver problemas de previsão, ranking, classificação e regressão definidos pelo utilizador.

Facilmente Portátil

Funciona sem problemas em OSX, Linux, e Windows.


Variedade de línguas

O XGBoost suporta a maioria das linguagens de programação incluindo, Julia, Scala, Java, R, Python, C++.

Integração com Cloud

O algoritmo de aprendizagem da máquina XGBoost suporta clusters de Fios, azuis, e AWS. Também funciona incrivelmente bem com outros Spark, Flink, e vários ecossistemas.

Construção de uma Intuição XG Boost

Uma das razões pelas quais as árvores de decisão são tão populares é que a sua visualização é bastante simples na sua forma mais básica. Os seus algoritmos também são fáceis de interpretar, mas criar intuição para a próxima geração de algoritmos (baseados em árvores) pode ser um pouco complicado. Aqui está uma analogia para compreender os algoritmos baseados em árvores e a sua evolução.

Pense em si mesmo como um gerente de contratação, falando com vários candidatos altamente qualificados. Cada passo da evolução do algoritmo baseado em árvores é como uma parte do processo de entrevista.

Árvore de decisão

Cada gerente de contratação segue um conjunto de critérios, incluindo experiência, educação, e desempenho nas entrevistas. Seria justo comparar uma árvore de decisão com um gestor de contratação que questiona os candidatos com base nos seus critérios.

Ensacamento

As entrevistas estão agora a cargo de várias pessoas, e todos os membros do painel têm direito a uma votação. A agregação ou o ensacamento de um saco envolve a amálgama de contributos de cada entrevistador para a decisão conclusiva, com a ajuda de um processo de votação imparcial.

Floresta aleatória

O Random Forest é um algoritmo de ensacamento que selecciona de forma aleatória um sub-componente de características. Por outras palavras, cada entrevistador testará o candidato com base em qualificações escolhidas aleatoriamente (por exemplo, entrevistas técnicas para testar competências de programação).

Reforço

O reforço é um procedimento alternativo em que cada entrevistador altera os critérios de avaliação em função do feedback recebido de entrevistadores anteriores. Torna o processo de entrevista altamente eficiente, uma vez que ajuda a implementar procedimentos de avaliação mais poderosos.

Reforço Gradiente

O processo de aumento de gradiente minimiza erros através do algoritmo de descida de gradiente. Por exemplo, as empresas de consultoria estratégica utilizam entrevistas de casos para eliminar candidatos que não são tão qualificados como outros candidatos.

XGBoost

XGBoosting é uma versão significativamente mais eficiente de aumento de gradiente, daí o seu nome: Extreme Gradient Boosting. É uma combinação ideal de técnicas de optimização de hardware e software para alcançar resultados superiores, utilizando recursos computacionais mínimos em períodos curtos.
Qual é o segredo por detrás do Excelente Desempenho do XGBoost?
As máquinas de Gradient Boost e XGBoost são métodos de árvore de montagem. Utilizam a arquitectura de descida de gradiente para aplicar o princípio de impulsionar os alunos pobres (CARTs.) Extreme Gradient Boosts melhora significativamente a estrutura GBM, implementando melhoramentos algorítmicos e optimização de sistemas.

Optimização do sistema

Paralelização

A XGBoost utiliza implementação paralela para arrancar para o processo sequencial de construção de árvores. É possível devido à característica intercambiável dos loops utilizados para a criação de aprendizes de base. O laço interno conta as características enquanto que o laço externo discrimina os nós foliares de uma árvore. O encaixe em loop restringe a paralelização porque é impossível iniciar o loop externo sem terminar o loop interno.

Assim, para conseguir um melhor tempo de execução, a ordem dos loops interage com a ajuda da inicialização com uma varredura global de triagem e instâncias que utilizam fios paralelos. O interruptor irá melhorar significativamente o desempenho algorítmico através da compensação das despesas gerais de paralelização.

Poda de árvores

XGBoost utiliza ‘max_depth’ e ignora o critério primeiro para podar árvores para trás. A abordagem é excelente para aumentar o desempenho computacional.

Optimização do Hardware

O algoritmo de optimização de hardware utiliza os recursos de hardware de forma eficiente. É possível através da alocação de buffers internos em cada fio para armazenamento de estatísticas de gradiente. Outras melhorias como a computação “fora do núcleo” utilizam espaço em disco e manipulam frames de dados que não cabem dentro da memória.

Melhorias Algorítmicas

Regularização

Ajuda a penalizar modelos complexos com a ajuda de Ridge e LASSO para evitar o excesso de equipamento.

Cross-Validation

O algoritmo de aprendizagem da máquina XGBoost tem um método de validação cruzada implementado em cada iteração. Elimina a necessidade de programação elaborada desta pesquisa e especifica a quantidade exacta de iterações necessárias por execução.

Sensibilização da Sparsity

A XGBoost acrescenta características esparsas ao compreender automaticamente o valor essencial e lida com vários padrões de sparsity com extraordinária eficiência.

Esboço de quantidade ponderada

O impulso de Gradiente Extremo implementa o algoritmo de esboço distribuído para encontrar os pontos de divisão ideais em conjuntos de dados ponderados.

XGBoost pode ser o Futuro da Aprendizagem por Máquina

Os cientistas de dados devem testar todos os algoritmos para identificar a melhor opção. Além disso, a escolha do algoritmo correcto, embora excelente, não é suficiente. A selecção da configuração correcta para um conjunto de dados em particular é também crucial. Além disso, é necessário considerar vários elementos para escolher o melhor algoritmo. Preste atenção a coisas como implementação, explicabilidade, e complexidade computacional para determinar o algoritmo que mais lhe convém.

Finalmente, a aprendizagem de máquinas é uma vasta fonte, e encontrará toneladas de alternativas ao Extreme Gradient Boost. Cat Boost e Light GBM são algumas alternativas recentes que produzem resultados impressionantes. Dito isto, o XGBoost reina supremo em termos de explicabilidade, pragmatismo, flexibilidade, desempenho, e muitas outras coisas. Esperar que este algoritmo de aprendizagem da máquina se mantenha no topo até que um desafiante digno apareça e abane as coisas.