No contexto de aprendizado de máquina, o conceito de ensemble learning se destaca como uma técnica poderosa que combina múltiplos modelos (ou “aprendizes fracos”) para formar um modelo mais robusto, capaz de gerar previsões mais precisas.

Esse método é amplamente utilizado para melhorar a performance de modelos em tarefas de classificação e regressão, reduzindo a chance de overfitting e tornando o modelo mais resistente a variações nos dados.

✨ Neste artigo vamos explorar três dos métodos mais comuns: bagging, boosting e stacking.

 

O que é Ensemble Learning?

O ensemble learning parte da ideia de que a combinação de vários “aprendizes fracos” pode formar um “aprendiz forte”. Um modelo fraco é aquele que faz previsões com precisão ligeiramente melhor que o acaso. Ao combinar esses modelos, espera-se que o modelo final tenha uma performance preditiva superior à de qualquer um dos modelos base isoladamente.

Isso acontece porque erros cometidos por um modelo podem ser corrigidos por outro, o que resulta em um modelo final menos suscetível ao overfitting e mais estável diante de variações nos dados de treinamento.

Métodos Ensemble

Crédito: Emma Ding

 

Bagging: Bootstrap Aggregation

O primeiro método de ensemble a ser explorado é o bagging, abreviação de bootstrap aggregation. Essa técnica funciona criando várias instâncias de um estimador em diferentes amostras do conjunto de treinamento, usando amostragem com reposição (ou seja, bootstrap). A ideia é que, ao construir múltiplos modelos com amostras levemente diferentes, os erros específicos de cada modelo sejam minimizados na agregação final.

Aqui está como o bagging opera:

  1. Criação de amostras bootstrap: A amostragem com reposição é utilizada para criar subconjuntos de dados independentes. Isso garante que cada amostra de treinamento seja ligeiramente diferente das demais.
  2. Construção de modelos: Um único algoritmo de aprendizado é aplicado a cada amostra bootstrap para treinar um modelo.
  3. Combinação de previsões: Para problemas de classificação, as previsões dos modelos são combinadas por meio de votação majoritária. Para problemas de regressão, a média das previsões é utilizada.

Um exemplo clássico de um algoritmo que utiliza bagging é o Random Forest, que combina múltiplas árvores de decisão para gerar previsões. As árvores de decisão são boas candidatas para o bagging porque são altamente suscetíveis ao overfitting, mas quando combinadas via votação ou média, esse efeito é minimizado.

 

💡
Vantagens do Bagging:

❇️ Reduz a variância do modelo;
❇️ Funciona bem com algoritmos instáveis como árvores de decisão;
❇️ Cada modelo pode ser treinado em paralelo, o que reduz o tempo de treinamento.

 

Boosting

Ao contrário do bagging, onde os modelos são construídos de forma independente, o boosting melhora a performance preditiva construindo modelos sequencialmente, onde cada novo modelo corrige os erros dos anteriores. Em vez de criar várias amostras independentes, o boosting ajusta pesos aos exemplos mal classificados, dando-lhes maior importância em iterações subsequentes.

Aqui está como o boosting funciona:

  1. Treinamento sequencial: Cada novo modelo tenta corrigir os erros cometidos pelos modelos anteriores, ajustando pesos para dar mais atenção aos exemplos mal classificados.
  2. Atualização dos pesos: Em problemas de classificação, exemplos que foram classificados incorretamente recebem pesos maiores, enquanto exemplos classificados corretamente recebem pesos menores.
  3. Combinação ponderada: O resultado final é uma combinação ponderada de todos os modelos, onde os modelos que corrigiram erros críticos têm mais influência.

Um exemplo popular de boosting é o Gradient Boosted Trees (GBT). O GBT utiliza árvores de decisão de forma sequencial, onde cada nova árvore tenta otimizar o erro residual da anterior, resultando em uma melhoria incremental na precisão.

 

💡
Vantagens do Boosting:

❇️ Reduz o viés, já que modelos mais fracos se tornam mais complexos;
❇️ Funciona bem com modelos que começam com alto viés, como árvores de decisão rasas (shallow trees);
❇️ Geralmente, fornece melhor performance preditiva do que bagging, especialmente em problemas mais difíceis.

 

Diferenças entre Bagging e Boosting

Embora ambos sejam métodos de ensemble, bagging e boosting possuem abordagens distintas para lidar com o viés e a variância:

➡️ Independência: No bagging, os modelos são treinados de forma independente e podem ser construídos em paralelo, enquanto no boosting, os modelos são construídos sequencialmente, com dependência entre eles.

➡️ Objetivo: O bagging busca reduzir a variância de modelos complexos, como árvores de decisão completamente desenvolvidas. Já o boosting foca em reduzir o viés, ajustando modelos fracos em cada iteração.

➡️ Modelos utilizados: Bagging tende a funcionar melhor com modelos complexos (e.g., árvores profundas), enquanto o boosting se beneficia de modelos mais simples (e.g., árvores rasas)

 

Stacking

Por fim, o stacking é outro método de ensemble que combina múltiplos algoritmos base para criar um modelo final, conhecido como meta-modelo.

No stacking, o objetivo é treinar diferentes modelos base, como Random Forest e Support Vector Machines (SVMs), em conjunto, e utilizar as previsões desses modelos como entradas para um modelo final (meta-modelo), que geralmente é um algoritmo mais simples, como uma regressão logística.

Aqui está o funcionamento do stacking:

  1. Treinamento dos modelos base: Múltiplos modelos base são treinados em todo o conjunto de dados de treinamento.
  2. Treinamento do meta-modelo: As previsões dos modelos base são usadas como novas features para treinar o meta-modelo, que faz a previsão final.

Um exemplo comum de stacking é utilizar Random Forest e SVM como modelos base, e uma regressão logística como o meta-modelo para gerar a previsão final.

 

💡
Vantagens do Stacking:

❇️ Pode combinar diferentes tipos de modelos, aproveitando suas forças individuais;
❇️ Pode resultar em previsões mais robustas do que qualquer modelo base sozinho.

 

Conclusão

Os métodos de ensemble, como bagging, boosting e stacking, oferecem maneiras poderosas de melhorar a performance de modelos de aprendizado de máquina.

Enquanto o bagging reduz a variância e é eficaz em modelos complexos, o boosting trabalha para reduzir o viés, ajustando modelos fracos de forma sequencial. Já o stacking combina as forças de diferentes modelos base para criar uma solução robusta.

Por fim, esses métodos podem ser amplamente utilizados em tarefas de classificação e regressão, sendo essenciais para qualquer cientista de dados que deseja obter o máximo de precisão em suas previsões.

✨ Para entender mais sobre o tema, recomendo assistir a este vídeo:

Categorized in:

Machine Learning,

Last Update: outubro 7, 2024