O que é o gradient boosting?

Autores

Bryan Clark

Senior Technology Advocate

Fangfang Lee

Developer Advocate

IBM

O que é gradient boosting?

Bryan Clark

Senior Technology Advocate

Fangfang Lee

Developer Advocate

IBM

O gradient boosting é um algoritmo de aprendizado em conjunto que produz previsões precisas ao combinar várias árvores de decisão em um único modelo. Essa abordagem algorítmica da modelagem preditiva, lançada por Jerome Friedman, usa modelos básicos para desenvolver suas habilidades, corrigindo erros e melhorando os recursos preditivos. Ao capturar padrões complexos nos dados, o gradient boosting se destaca em diversas tarefas de modelagem preditiva.1

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Aprendizado em conjunto e boosting

Aprendizado em conjunto é uma abordagem de aprendizado de máquina que combina vários modelos ou métodos para impulsionar o desempenho preditivo. Muitas vezes emprega técnicas como bagging e boosting. O bagging envolve o treinamento de vários modelos em diferentes subconjuntos de dados com alguma aleatoriedade, o que ajuda a reduzir a variância ao calcular a média dos erros individuais. Um ótimo exemplo dessa abordagem são as florestas aleatórias.

Ao contrário, o boosting é uma técnica de conjunto que treina modelos iterativamente para corrigir erros anteriores. Ele dá mais peso às instâncias mal classificadas em modelos subsequentes, permitindo que se concentrem em pontos de dados desafiadores e, em última análise, melhorem o desempenho geral. O AdaBoost, amplamente considerado o primeiro algoritmo de boosting aplicável, é uma ilustração clássica desse método. Tanto o bagging quanto o boosting otimizam a troca entre viés e variância nos modelos, levando a um desempenho mais robusto. 2

Essas técnicas são amplamente utilizadas em aprendizado de máquina para melhorar a precisão do modelo, especialmente ao lidar com conjuntos de dados complexos ou ruidosos. Ao combinar várias perspectivas, o aprendizado em conjunto fornece uma maneira de superar as limitações de modelos individuais e alcançar uma melhor otimização. 3

Diagrama que descreve o boost no contexto de aprendizado colaborativo.

Como funciona o gradient boosting

O gradient boosting é uma técnica de aprendizado de máquina que combina vários modelos de previsão fraca em um único conjunto. Esses modelos fracos são normalmente árvores de decisão, que são treinadas sequencialmente para minimizar erros e melhorar a precisão. Ao combinar vários regressores ou classificadores de árvores de decisão, o gradient boosting pode capturar efetivamente relações complexas entre funcionalidades.

Um dos principais benefícios do gradient boosting é sua capacidade de minimizar iterativamente a função de perda, resultando em uma maior precisão preditiva. No entanto, é preciso estar ciente do overfitting, que ocorre quando um modelo se torna muito especializado em relação aos dados de treinamento e não consegue generalizar bem para novas instâncias. Para mitigar esse risco, os profissionais devem ajustar cuidadosamente os hiperparâmetros, monitorar o desempenho do modelo durante o treinamento e empregar técnicas como regularização, poda ou parada antecipada. Ao compreender esses desafios e tomar medidas para lidar com eles, os profissionais podem aproveitar com sucesso o poder do gradient boosting (incluindo o uso de árvores de regressão) para desenvolver modelos de previsão precisos e robustos para diversas aplicações. 4,5

O erro quadrático médio (MSE) é uma função de perda usada para avaliar até que ponto as previsões de um modelo de aprendizado de máquina correspondem aos dados reais. O MSE calcula a média das diferenças ao quadrado entre os valores previstos e observados. A fórmula para o MSE é:  MSE=Σ(yi-pi)2/n , onde  yi representa o valor real,   pi é o valor previsto, e   n é o número de observações.

Expandindo um pouco mais, o MSE quantifica a diferença entre os valores previstos e os valores reais representados no conjunto de dados para problemas de regressão. A etapa de elevação ao quadrado ajuda a garantir que tanto os erros positivos quanto os negativos contribuam para o valor final sem que se anulem. Esse método dá mais peso a erros maiores, pois os erros são projetados ao quadrado.

Para interpretar o MSE, geralmente um valor mais baixo indica uma melhor conformidade entre previsões e observações. No entanto, alcançar um MSE mais baixo é difícil em cenários do mundo real devido à aleatoriedade inerente que existe não apenas no conjunto de dados, mas na população. Em vez disso, comparar valores de MSE ao longo do tempo ou entre diferentes modelos pode ajudar a determinar melhorias na precisão preditiva. Também é importante notar que visar especificamente um MSE de zero é quase sempre indicativo de overfitting. 6

Algumas implementações populares de métodos de boosting dentro do Python incluem Extreme Gradient Boosting (XGBoost) e Light Gradient-Boosting Machine (LightGBM). O XGBoost foi projetado para velocidade e desempenho e é usado para problemas de regressão e classificação. O LightGBM usou algoritmos de aprendizado baseados em árvores e é adequado para processamento de dados em grande escala. Ambos os métodos aumentam ainda mais a precisão, especialmente ao lidar com conjuntos de dados complexos ou ruidosos. O LightGBM emprega uma técnica chamada Gradient-based One-Side Sampling (GOSS) para filtrar as instâncias de dados para encontrar os pontos de divisão, reduzindo significativamente a sobrecarga computacional. Integre várias técnicas de aprendizado em conjunto, elimine as restrições de modelos individuais e obtenha resultados superiores em cenários de ciência de dados. 7,8

Veja a seguir um detalhamento passo a passo de como o processo de gradient boosting funciona.

Inicialização: começa usando um conjunto de treinamento para estabelecer uma base com um modelo básico de aprendiz, geralmente uma árvore de decisão, cujas previsões iniciais são geradas aleatoriamente. Normalmente, a árvore de decisão conterá apenas alguns nós terminais ou nós folhas. Muitas vezes escolhidos devido à sua interpretabilidade, esses aprendizes fracos ou básicos servem como um ponto de partida ideal. Essa configuração inicial abre caminho para as iterações subsequentes.

Cálculo de resíduos: para cada exemplo de treinamento, calcule o erro residual subtraindo o valor previsto do valor real. Essa etapa identifica as áreas em que as previsões do modelo precisam de melhorias.

Refinamento com regularização: após o cálculo dos resíduos e antes do treinamento de um novo modelo, ocorre o processo de regularização. Essa etapa envolve a redução da escala da influência de cada novo aprendiz fraco integrado ao conjunto. Ao calibrar cuidadosamente essa escala, pode-se governar a rapidez com que o algoritmo de boosting avança, ajudando, assim, na prevenção do overfitting e na otimização geral do desempenho.

Treinamento do próximo modelo: use os erros residuais calculados na etapa anterior como alvos e treine um novo modelo ou aprendiz fraco para prevê-los com precisão. O foco dessa etapa é corrigir os erros cometidos pelos modelos anteriores, refinando a previsão geral.

Atualizações em conjunto: nesse estágio, o desempenho do conjunto atualizado (incluindo o modelo recém-treinado) é normalmente avaliado usando um conjunto de testes separado. Se o desempenho nesse conjunto de dados de retenção for satisfatório, o conjunto poderá ser atualizado incorporando o novo aprendiz fraco; caso contrário, talvez sejam necessários ajustes nos hiperparâmetros.

Repetição: repita as etapas apresentadas anteriormente conforme a necessidade. Cada iteração se baseia e refina o modelo básico por meio do treinamento de novas árvores, melhorando ainda mais a precisão do modelo. Se a atualização em conjunto e o modelo final forem satisfatórios em comparação com o modelo de referência com base na precisão, então passe para a próxima etapa. 

Critérios de parada: interromper o processo de boosting quando um critério de parada predeterminado for atendido, como um número máximo de iterações, precisão do alvo ou retornos decrescentes. Essa etapa ajuda a garantir que a previsão final do modelo alcance o equilíbrio esperado entre complexidade e desempenho. 

Processo de aprendizado em conjunto sequencial, usado por algoritmos de boosting para treinar vários aprendizes fracos em sequência.

Métodos em conjunto e de stacking

A combinação de gradient boosting com outros algoritmos de aprendizado de máquina por meio de métodos de conjunto ou empilhamento pode melhorar ainda mais a precisão preditiva. Por exemplo, combinar o gradient boosting com máquinas de vetores de suporte (SVMs), florestas aleatórias ou k-vizinhos mais próximos (KNN) pode aproveitar os pontos fortes de cada modelo e criar um conjunto mais robusto. O stacking envolve o treinamento de vários aprendizes básicos e o uso de suas saídas como entradas para um meta-aprendiz, que combina previsões para gerar saídas finais. 9

Diagrama que descreve o stacking no contexto de aprendizado colaborativo.

Parada antecipada e validação cruzada

Monitorar o desempenho do modelo durante o treinamento e a implementação de técnicas de parada antecipada pode ajudar a evitar o overfitting, interrompendo o processo de boosting quando o desempenho em um conjunto de validação para de melhorar ou começa a se degradar. Além disso, o uso de estratégias de validação cruzada, como a validação cruzada k-fold, pode fornecer estimativas mais confiáveis do desempenho do modelo e do ajuste de hiperparâmetros, aprimorando ainda mais os recursos preditivos do gradient boosting.

AI Academy

Coloque a IA para trabalhar no serviço ao cliente

Veja como a IA generativa pode encantar os clientes com uma experiência mais integrada e aumentar a produtividade da organização nessas três áreas importantes: autoatendimento, agentes humanos e operações da central de contato.

Como lidar com conjuntos de dados desequilibrados

O gradient boosting é sensível ao desequilíbrio de classe, o que pode levar a previsões com viés favorecendo a classe da maioria. Para lidar com essa questão, os profissionais podem empregar técnicas como superamostragem da classe minoritária, subamostragem da classe majoritária ou uso de funções de perda ponderadas que atribuem penalidades mais altas para a classificação incorreta de instâncias minoritárias.

Ao implementar essas estratégias e ajustar cuidadosamente os hiperparâmetros, os profissionais podem melhorar significativamente a precisão e robustez preditiva do gradient boosting em várias aplicações, desde análise de dados de alta dimensão até tarefas complexas de monitoramento ambiental.

Ajuste de hiperparâmetros com gradient boosting no scikit-learn (sklearn)

O GradientBoostingClassifier e o GradientBoostingRegressor no scikit-learn oferecem uma abordagem versátil para implementar o algoritmo de gradient boosting, atendendo tanto a tarefas de classificação quanto de regressão. Ao permitir que os usuários façam um ajuste fino de vários parâmetros, essas implementações permitem a customização do processo de boosting de acordo com requisitos e características específicas dos dados.

Profundidade da árvore (max_profundidade): controla a profundidade máxima de árvores de decisão individuais e deve ser ajustada para melhor desempenho. As árvores mais profundas podem capturar relacionamentos mais complexos, mas também são propensas ao overfitting. 

Taxa de aprendizado (learning_rate): determina a contribuição de cada árvore para o conjunto geral. Uma taxa de aprendizado menor desacelera a convergência e reduz o risco de overfitting, enquanto um valor maior pode levar a um treinamento mais rápido, em detrimento do possível overfitting.

Número de árvores (n_estimators): especifica o número total de árvores no conjunto. Aumentar esse parâmetro pode melhorar o desempenho, mas também aumenta o risco de overfitting.

Além disso, as implementações de gradient boosting do scikit-learn fornecem estimativas out-of-bag (OOB), uma técnica para avaliar o desempenho do modelo sem a necessidade de conjuntos de dados de validação separados. Além disso, os métodos de previsão em estágios no scikit-learn permitem previsões incrementais à medida que novos dados se tornam disponíveis, tornando o processamento em tempo real possível e eficiente. Em resumo, as implementações de gradient boosting do scikit-learn fornecem um rico conjunto de funcionalidades para ajustar modelos de acordo com necessidades específicas e características do conjunto de dados, promovendo, em última análise, um desempenho preditivo superior. 10

Casos de uso do gradient boosting

Tratamento de dados médicos de alta dimensão: o gradient boosting é capaz de lidar de forma eficaz com conjuntos de dados contendo muitas funcionalidades em relação ao número de observações. Por exemplo, no diagnóstico médico, o gradient boosting pode ser usado para diagnosticar doenças com base nos dados do paciente, que podem conter mais de 100 funcionalidades. Ao aproveitar as árvores de decisão como aprendizes fracos, o algoritmo pode ser capaz de gerenciar alta dimensionalidade, onde os modelos de regressão linear tradicionais podem ter dificuldades. O algoritmo também pode extrair informações valiosas de dados esparsos, tornando-o adequados para aplicações como bioinformática ou problemas de classificação de texto. 11,12

Reduzir as taxas de rotatividade no atendimento ao cliente: quando um modelo já existe, mas o desempenho está abaixo do ideal, o gradient boosting pode ser empregado para refinar iterativamente as previsões, corrigindo erros anteriores. Um exemplo é a previsão da rotatividade de clientes no setor de telecomunicações, onde foi usado um modelo tradicional de regressão logística. A empresa pode aplicar algoritmos de gradient boosting para identificar os principais fatores que contribuem para que os clientes optem por outro serviço, como altos volumes de chamadas ou baixo desempenho da rede. Ao incorporar esses fatores no modelo, ela pode melhorar a precisão e reduzir as taxas de rotatividade. 13

Previsão de sobrevivência da faia: em um ecossistema florestal, a doença das folhas da faia (BLD) é uma ameaça significativa à saúde das árvores de faia. Os pesquisadores podem desenvolver um modelo preditivo para identificar árvores em risco de BLD e prever sua probabilidade de sobrevivência. Pode ser desenvolvido um modelo de aprendizado de máquina para analisar fatores ambientais, como dados climáticos, qualidade do solo e características das árvores, para calcular a probabilidade de sobrevivência das faia (BTS) durante um período de cinco anos. Ao usar técnicas de gradient boosting, é possível capturar padrões complexos que podem ser negligenciados por métodos mais simples. O modelo pode identificar árvores em risco de BLD com alta precisão e fazer forecasting de seu BTS com precisão, capacitando os pesquisadores a priorizar intervenções e proteger efetivamente faias vulneráveis. Esse caso de uso demonstra como o gradient boosting pode aumentar o poder preditivo dos modelos de aprendizado de máquina em tarefas complexas de monitoramento ambiental. 14

Soluções relacionadas
IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real
Notas de rodapé

Friedman, Jerome H. “Greedy Function Approximation: A Gradient Boosting Machine.” The Annals of Statistics 29, no. 5 (2001): 1189–1232. http://www.jstor.org/stable/2699986

Schapire, RE (2013). Explaining AdaBoost. In: Schölkopf, B., Luo, Z., Vovk, V. (eds) Empirical Inference. Springer, Berlin, Heidelberg. https://link.springer.com/chapter/10.1007/978-3-642-41136-6_5

Fan, Wenjie, et al. "A Survey of Ensemble Learning: Recent Trends and Future Directions." arXiv preprint arXiv:2501.04871 (2025).

Matsubara, Takuo. “Wasserstein Gradient Boosting: A Framework for Distribution- Valued Supervised Learning.” arXiv.org, 29 de agosto de 2024. https://search.arxiv.org/paper.jsp?r=2405.09536&qid=1743170618344ler_nCn N_-2014411830&qs=gradient%2Bboosting. 

Emami, Seyedsaman e Gonzalo Martínez-Muñoz. 2023. “Sequential Training of Neural Networks with Gradient Boosting.” IEEE Access 11 (janeiro): 42738–50. https://ieeexplore.ieee.org/document/10110967

Chen, Tianqi, et al. "Mean Squared Error." Encyclopedia Britannica, 2023. https://www.britannica.com/science/mean-squared-error.

XGBoost Developers. "XGBoost: A Scalable Tree Boosting System." GitHub, 2021. https://github.com/dmlc/xgboost/blob/master/README.md .

LightGBM Documentation Team. "LightGBM." 2021. https://lightgbm.readthedocs.io/en/stable/ .

Konstantinov, Andrei V. e Lev V. Utkin. “A Generalized Stacking for Implementing Ensembles of Gradient Boosting Machines.” In Studies in Systems, Decision and Control, 3–16, 2021. https://link.springer.com/chapter/10.1007/978-3-030-67892-0_1.

10 Documentation of Scikit-Learn “Scikit-Learn” 2007 https://scikit-learn.org/0.21/documentation.html

11. Lecun, Yann, et al. "Gradient-Based Learning Applied to Document Recognition." Proceedings of the IEEE 86, no. 11 (2007): 2278-2324. doi: 10.1109/PROC.2007.898639 

12 Zhang, Zhongheng, Yiming Zhao, Aran Canes, Dan Steinberg e Olga Lyashevska. 2019. “Predictive Analytics with Gradient Boosting in Clinical Medicine.” Annals of Translational Medicine 7 (7): 152–52. https://atm.amegroups.org/article/view/24543/23475.

13 ‌Al Shourbaji, Ibrahim, Na Helian, Yi Sun, Abdelazim G. Hussien, Laith Abualigah e Bushra Elnaim. 2023. “An Efficient Churn Prediction Model Using Gradient Boosting Machine and Metaheuristic Optimization.” Scientific Reports 13 (1): 14441. https://www.nature.com/articles/s41598-023-41093-6.

14 Manley, William, Tam Tran, Melissa Prusinski e Dustin Brisson. “Modeling Tick Populations: An Ecological Test Case for Gradient Boosted Trees.” bioRxiv : the preprint server for biology, 29 de novembro de 2023. https://pmc.ncbi.nlm.nih.gov/articles/PMC10054924/#:~:text=The%20rapidly%20expanding%20environmental%20data,development%20of%20public%20health%20strategies.