Construindo modelos robustos de IA com Bagging: técnicas, benefícios e aplicações

Publicados: 2025-01-09

Bagging é uma técnica de aprendizado de máquina (ML) que melhora a consistência dos modelos preditivos. Este guia descreve como funciona o ensacamento, discute suas vantagens, desafios e aplicações e o compara com técnicas relacionadas, como o boosting.

Índice

  • O que é ensacamento?
  • Variância vs. viés
  • Ensacamento vs. reforço
  • Como funciona o ensacamento
  • Tipos de algoritmo de ensacamento
  • Aplicações de ensacamento
  • Vantagens do ensacamento
  • Desafios e limitações do ensacamento

O que é ensacamento?

Bagging (ou, mais formalmente, bootstrapagg regating) é uma técnica de aprendizado conjunto que melhora a precisão da saída usando vários modelos de ML semelhantes. Basicamente, o aprendizado em conjunto combina vários modelos para obter melhor desempenho do que qualquer modelo individual.

A abordagem envolve dividir os dados de treinamento em subconjuntos aleatórios e treinar um modelo diferente em cada um. Para novos dados de entrada, as previsões de todos os modelos são agregadas para produzir um resultado final. Ao utilizar subconjuntos aleatórios, a técnica reduz as discrepâncias entre os modelos, resultando em previsões mais consistentes.

O ensacamento é particularmente eficaz para melhorar a consistência, minimizando a variação do sistema de ML.

Trabalhe de maneira mais inteligente com Grammarly
O parceiro de redação de IA para qualquer pessoa com trabalho a fazer

Variância vs. viés

Reduzir o viés e a variação são objetivos fundamentais de qualquer modelo ou sistema de ML.

O preconceito descreve os erros que um sistema de ML comete devido às suas suposições sobre os dados que vê. Geralmente é determinado calculando o quão errado o modelo está, em média. A variância mede a consistência do modelo. É estimado verificando quão diferentes são as saídas do modelo para entradas semelhantes.

Alto viés

Como exemplo, consideremos o problema de prever o preço de venda de uma casa a partir de suas características (como metragem quadrada e número de quartos). Um modelo simples pode fazer muitas suposições simplificadoras e considerar apenas a metragem quadrada, fazendo com que tenha um viés alto. Ele sempre errará, mesmo nos dados de treinamento, porque a realidade é mais complicada do que suas suposições. Portanto, é simplesmente incapaz de captar os indicadores reais de preços (como localização, qualidade da escola e número de quartos).

Alta variação

Um modelo mais complexo pode captartodasas tendências dos dados de treinamento e ter alta variação. Por exemplo, este modelo pode encontrar uma pequena correlação entre o número da casa (essencialmente a parte numérica de um endereço) e o preço nos dados de treinamento e usá-la, mesmo que não seja um preditor real. O desempenho será bom nos dados de treinamento, mas ruim nos dados do mundo real.

A compensação entre viés de variância

Um modelo ideal teria baixo viés e baixa variância, gerando os resultados corretos de forma consistente em dados de entrada semelhantes. O alto viés geralmente resulta do modelo ser muito simples para capturar os padrões nos dados de treinamento – subajuste. A alta variância geralmente resulta da captura de padrões espúrios pelo modelo nos dados de treinamento – overfitting.

Aumentar a sofisticação de um modelo pode permitir que ele capture mais padrões, levando a um viés menor. No entanto, este modelo mais sofisticado tenderá a sobreajustar os dados de treino, levando a uma maior variância, e vice-versa. Na prática, é difícil conseguir um equilíbrio bem equilibrado entre viés e variância.

O Bagging se concentra na redução da variação. Cada modelo no conjunto pode ter alta variância porque ajusta demais seu conjunto de dados. Mas como cada modelo obtém um conjunto de dados aleatório, eles descobrirão diferentes padrões espúrios. No exemplo do preço da habitação, um modelo pode sobrevalorizar casas com números pares, outro pode subestimá-las e a maioria pode ignorar completamente os números das casas.

Esses padrões arbitrários tendem a atingir a média quando calculamos a média de suas previsões, deixando-nos com as verdadeiras relações subjacentes. O conjunto atinge assim menor variância e overfitting reduzido em comparação com qualquer modelo individual.

Ensacamento vs. reforço

Você pode ouvir falar de ensacamento no mesmo contexto que reforço. Essas são as técnicas de aprendizagem em conjunto mais comuns e sustentam muitos modelos populares de ML. Boosting é uma técnica onde os modelos são treinados com base nos erros dos modelos anteriores. Então este grupo de modelos é usado para responder a quaisquer entradas. Vamos discutir mais detalhadamente as diferenças entre as duas técnicas.

Ensacamento Impulsionando
Treinamento de modelo Os modelos são treinados em paralelo em diferentes subconjuntos de dados Os modelos são treinados sequencialmente, com cada modelo focando nos erros do modelo anterior
Foco na redução de erros Reduz a variação Reduz preconceito
Algoritmos comuns Floresta aleatória, árvores de decisão ensacadas AdaBoost, aumento de gradiente, XGBoost
Risco de sobreajuste Menor risco de overfitting devido à amostragem aleatória Maior risco de overfitting
Complexidade computacional Mais baixo Mais alto

Ambas as técnicas são comuns, embora o reforço seja mais popular. O reforço pode reduzir o viésea variância, enquanto o ensacamento geralmente afeta apenas a variância.

Como funciona o ensacamento

Vamos considerar como o ensacamento realmente funciona. A essência é dividir os dados de treinamento aleatoriamente, treinar modelos em paralelo nos dados divididos e usar todos os modelos para responder às entradas. Abordaremos cada um deles.

Divisão de dados

Suponha que temos um conjunto de dados de treinamento comnpontos de dados e queremos fazer um conjunto agrupado demmodelos. Então, precisamos criarmconjuntos de dados (um para cada modelo), cada um comnpontos. Se houver mais ou menos denpontos em cada conjunto de dados, alguns modelos serão super ou insuficientemente treinados.

Para criar um único novo conjunto de dados aleatório, escolhemos aleatoriamentenpontos do conjunto de dados de treinamento original. É importante ressaltar que retornamos os pontos ao conjunto de dados original após cada seleção. Como resultado, o novo conjunto de dados aleatório terá mais de uma cópia de alguns dos pontos de dados originais e não terá nenhuma cópia de outros. Em média, este conjunto de dados consistirá em 63% de pontos de dados únicos e 37% de pontos de dados duplicados.

Em seguida, repetimos esse processo para criar todos osmconjuntos de dados. A variação na representação dos pontos de dados ajuda a criar diversidade entre os modelos de conjunto, o que é uma chave para reduzir a variação geral.

Treinamento de modelo

Com nossosmconjuntos de dados aleatórios, simplesmente treinamosmmodelos, um modelo para cada conjunto de dados. Deveríamos usar o mesmo tipo de modelo para garantir vieses semelhantes. Podemos treinar os modelos em paralelo, permitindo uma iteração muito mais rápida.

Agregando modelos

Agora que temosmmodelos treinados, podemos usá-los como um conjunto para responder a qualquer entrada. Cada ponto de dados de entrada é alimentado paralelamente a cada um dos modelos e cada modelo responde com sua saída. Em seguida, agregamos os resultados dos modelos para chegar a uma resposta final. Se for um problema de classificação, consideramos a moda das saídas (a saída mais comum). Se for um problema de regressão, calculamos a média dos resultados.

A chave para reduzir a variância aqui é que cada modelo é melhor em alguns tipos de entradas e pior em outros devido às diferenças nos dados de treinamento. No entanto, no geral, os erros de qualquer modelo devem ser anulados pelos outros modelos, levando a uma menor variância.

Tipos de algoritmos de ensacamento

O bagging como algoritmo pode ser aplicado a qualquer tipo de modelo. Na prática, existem dois modelos ensacados que são muito comuns: florestas aleatórias e árvores de decisão ensacadas. Vamos explorar brevemente ambos.

Florestas aleatórias

Uma floresta aleatória é um conjunto de árvores de decisão, cada uma treinada em conjuntos de dados aleatórios. Uma árvore de decisão é um modelo que faz previsões respondendo perguntas sim/não sobre os dados de entrada até encontrar um rótulo adequado.

Em uma floresta aleatória, cada árvore de decisão tem os mesmos hiperparâmetros – configurações predefinidas como a profundidade máxima da árvore ou as amostras mínimas por divisão – mas usa recursos diferentes (escolhidos aleatoriamente) do conjunto de dados de treinamento. Sem a randomização de recursos, cada árvore de decisão pode convergir para respostas semelhantes, apesar das diferenças nos dados de treinamento. Florestas aleatórias são uma escolha extremamente popular para ML e geralmente são um bom ponto de partida para resolver tarefas de ML.

Árvores de decisão ensacadas

As árvores de decisão ensacadas são muito semelhantes às florestas aleatórias, exceto que cada árvore usa os mesmos recursos do conjunto de dados de treinamento. Isto reduz a diversidade de resultados das árvores, o que tem prós e contras. Do lado positivo, as árvores são mais estáveis ​​e provavelmente darão respostas semelhantes; isso pode ser usado para determinar quais recursos são importantes. A desvantagem é que a variância não será tão reduzida. Por esse motivo, florestas aleatórias são muito mais utilizadas do que árvores de decisão ensacadas.

Aplicações de ensacamento

O bagging pode ser usado em qualquer problema de ML onde a variância seja maior do que o desejado. Desde que exista um modelo de ML, ele pode ser ensacado. Para tornar isso mais concreto, revisaremos alguns exemplos.

Classificação e regressão

Classificação e regressão são dois dos principais problemas de ML. Um usuário pode querer rotular o assunto de uma imagem como um gato ou um cachorro – classificação. Ou um usuário pode querer prever o preço de venda de uma casa a partir de suas características – regressão. O ensacamento pode ajudar a reduzir a variação para ambos, como vimos.

Na classificação, é utilizado o modo dos modelos de conjunto. Na regressão, a média é usada.

Seleção de recursos

A seleção de recursos trata de encontrar os recursos mais importantes em um conjunto de dados – aqueles que melhor prevêem a saída correta. Ao remover dados de recursos irrelevantes, um desenvolvedor de modelo pode reduzir a possibilidade de overfitting.

Conhecer os recursos mais importantes também pode tornar os modelos mais interpretáveis. Além disso, os desenvolvedores de modelos podem usar esse conhecimento para reduzir o número de recursos nos dados de treinamento, levando a um treinamento mais rápido. As árvores de decisão ensacadas funcionam bem para descobrir recursos importantes. Os recursos com grande peso neles provavelmente serão os mais importantes.

Ensacamento no e-commerce

O ensacamento no comércio eletrônico é particularmente valioso para prever a rotatividade de clientes. Os modelos de ML treinados em dados de rotatividade geralmente apresentam alta variação devido a padrões complexos e barulhentos de comportamento do cliente; eles podem superajustar seu conjunto de dados de treinamento. Eles também podem inferir relações falsas, como presumir que o número de vogais no nome de um cliente afeta a probabilidade de abandono.

O conjunto de dados de treinamento pode conter apenas alguns exemplos que causam esse overfitting. Usando modelos empacotados, o conjunto pode identificar melhor indicadores de rotatividade genuínos, ignorando correlações espúrias, levando a previsões de rotatividade mais confiáveis.

Vantagens do ensacamento

O Bagging reduz a variação e o overfitting do modelo e pode ajudar com problemas de dados. É também uma das técnicas de ensacamento mais paralelizáveis ​​e eficientes.

Variância reduzida

A variação do modelo indica que um modelo não está aprendendo os padrões verdadeiros e significativos nos dados. Em vez disso, está captando correlações aleatórias que não significam muito e são um sintoma de dados de treinamento imperfeitos.

O ensacamento reduz a variância dos modelos; o conjunto como um todo concentra-se nas relações significativas entre entrada e saída.

Generalize bem para novos dados

Como os modelos empacotados têm maior probabilidade de captar relacionamentos significativos, eles podem generalizar para dados novos ou não vistos. Uma boa generalização é o objetivo final do aprendizado de máquina, portanto, o ensacamento costuma ser uma técnica útil para muitos modelos.

Em quase todos os problemas de ML, o conjunto de dados de treinamento não é totalmente representativo dos dados reais, portanto, uma boa generalização é fundamental. Noutros casos, a verdadeira distribuição dos dados pode mudar ao longo do tempo, pelo que é necessário um modelo adaptável. O ensacamento ajuda em ambos os casos.

Altamente paralelizável

Em contraste com o boosting, a criação de modelos ensacados é altamente paralelizável. Cada modelo pode ser treinado de forma independente e simultânea, permitindo experimentação rápida e ajuste mais fácil de hiperparâmetros (desde que, é claro, você tenha recursos computacionais suficientes para treinar em paralelo).

Além disso, como cada modelo é independente dos demais, ele pode ser trocado ou retirado. Por exemplo, um modelo fraco pode ser treinado novamente em um subconjunto aleatório diferente para melhorar seu desempenho sem afetar os outros modelos.

Desafios e limitações do ensacamento

Infelizmente, adicionar mais modelos adiciona mais complexidade. Os desafios da complexidade extra significam que os modelos empacotados exigem muito mais recursos de computação, são mais difíceis de interpretar e compreender e exigem mais ajuste de hiperparâmetros.

Mais recursos computacionais necessários

Mais modelos exigem mais recursos para executá-los e, muitas vezes, os conjuntos empacotados têm mais de 50 modelos. Isso pode funcionar bem para modelos menores, mas com modelos maiores pode se tornar intratável.

Os tempos de resposta do conjunto também podem ser prejudicados à medida que ele cresce. Os recursos também têm um custo de oportunidade: podem ser melhor utilizados para treinar um modelo maior e melhor.

Mais difícil de interpretar

Os modelos de ML, como um todo, são difíceis de interpretar. As árvores de decisão individuais são um pouco mais fáceis, pois mostram em quais recursos baseiam as decisões. Mas quando você agrupa várias delas, como em uma floresta aleatória, as respostas conflitantes de cada árvore podem ser confusas.

Tomar a moda ou a média das previsões não explica por que essa é a previsão correta. A sabedoria da multidão, embora muitas vezes correta, é difícil de entender.

Mais ajustes de hiperparâmetros

Com mais modelos, os efeitos dos hiperparâmetros são ampliados. Um pequeno erro nos hiperparâmetros pode agora afetar dezenas ou centenas de modelos. Ajustar o mesmo conjunto de hiperparâmetros requer mais tempo, o que pode sobrecarregar ainda mais os recursos limitados.