• Home

    Escolha seu Plano

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    Cursos

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    Cursos

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    Cursos

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    Cursos

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    Cursos

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    Cursos

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    Cursos

    Ver mais cursos de Gestão & Negócios
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    Cursos

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    Carreiras

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    Cursos

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    Cursos

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    Cursos

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • Imersão Engenharia de Software: Dev na Era da IA
    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA

    Escolha seu Plano

    Conteúdos gratuitos

    Explore conteúdos gratuitos para aprender tecnologia no seu ritmo. Encontre artigos com conteúdos técnicos para aprender na prática, notícias para acompanhar as principais tendências do mercado e o Alura Labs, com análises e reflexões de especialistas sobre tecnologia, IA e carreira.

    Conteúdos gratuitos

    • Artigos
    • Notícias
    • Alura Labs
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • LinkedIn
    • Instagram
    • YouTube
    1. Página inicial
    2. Dados
    3. Técnicas de Bagging e Boosting em Machine Learning

    Técnicas de Bagging e Boosting em Machine Learning

    9 min9 minutos de leitura

    9 min9 minutos de leitura

    Publicado: 21/08/2023

    Última atualização: 26 de Junho

    1. Relação entre variância e viés
    2. Métodos Ensemble
    3. Principais diferenças
    4. Conclusão
    5. Créditos

    Imagine que você está prestes a comprar um novo smartphone e encontra opções no mercado, cada uma com suas próprias especificações, recursos e preços.

    Diante dessa diversidade de escolhas, você não tomaria uma decisão precipitada comprando o primeiro smartphone que vê, confiando apenas na opinião de uma pessoa, por exemplo.

    Em vez disso, você provavelmente tomaria um tempo para pesquisar, comparar análises de diferentes fontes e ouvir as opiniões de amigos que já possuem smartphones.

    Da mesma forma, na área de Machine Learning, quando se trata de avaliar resultados de diversas fontes para obter um resultado final, utilizamos uma técnica chamada de Ensemble.

    Assim como você não confiaria em uma única fonte de informação ao escolher um smartphone, os métodos Ensemble combinam as previsões de vários modelos de machine learning para obter resultados mais precisos e confiáveis. Neste artigo, vamos apresentar dois desses métodos: Bagging e Boosting.

    Relação entre variância e viés

    A relação entre viés e variância em modelos de machine learning é uma parte fundamental da compreensão do desempenho e da generalização desses modelos. Esses conceitos estão relacionados à capacidade de um modelo se ajustar aos dados de treinamento e à sua capacidade de generalizar para dados não observados.

    1. Viés (Bias): O viés refere-se à tendência de um modelo fazer suposições simplificadas sobre os dados, o que pode levar a erros sistemáticos. Um modelo com alto viés tende a subestimar ou superestimar consistentemente os valores reais dos dados. Isso pode acontecer quando o modelo é muito simples para capturar a complexidade dos dados. Modelos de baixa complexidade, como regressão linear simples, geralmente têm alto viés.

    2. Variância: A variância está relacionada à sensibilidade de um modelo às variações nos dados de treinamento. Um modelo com alta variância se ajusta muito bem aos dados de treinamento, mas não generaliza bem para novos dados. Isso pode ocorrer quando o modelo é muito complexo e captura até mesmo o ruído presente nos dados de treinamento. Modelos de alta complexidade, como árvores de decisão profundas ou redes neurais complexas, tendem a ter alta variância.

    A relação entre viés e variância pode ser visualizada através do conceito de "trade-off" entre eles:

    • Baixo Viés e Alta Variância: Modelos com baixo viés e alta variância têm a capacidade de se ajustar muito bem aos dados de treinamento, mas eles tendem a se comportar mal em dados não vistos, devido à sua sensibilidade às variações. Isso resulta em overfitting, onde o modelo memoriza o ruído nos dados de treinamento.

    • Alto Viés e Baixa Variância: Modelos com alto viés e baixa variância são mais simplificados e não se ajustam bem aos dados de treinamento. Eles geralmente não capturam a complexidade dos dados e, portanto, não generalizam bem. Isso resulta em underfitting, onde o modelo não consegue aprender os padrões presentes nos dados.

    • Equilíbrio entre Viés e Variância: O objetivo é encontrar um equilíbrio entre viés e variância, resultando em um modelo que se ajuste adequadamente aos dados de treinamento e generalize bem para novos dados. Isso envolve escolher a complexidade apropriada do modelo e ajustar seus hiperparâmetros conforme necessário.

    A seguir, temos uma figura que representa a relação entre o viés e a variância, onde podemos identificar onde ocorre tanto o Underfitting quanto o Overfitting.

    Imagem da representação gráfica da relação entre o viés e a variância. Na imagem, são destacadas quatro características: viés alto, viés baixo, variância alta, variância baixa. A relação entre elas  é evidenciada através de um símbolo de alvo, com as distribuições dos valores em cada um dos alvos.

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Métodos Ensemble

    Um algoritmo que utiliza vários modelos em conjunto com o objetivo de obter um modelo final com melhores resultados é chamado de método Ensemble. O processo envolve a criação de um conjunto de modelos, que pode ser composto por diferentes algoritmos ou variações do mesmo algoritmo.

    Os modelos que são combinados através desse método são chamados modelos base. Geralmente, esses modelos obtêm resultados apenas um pouco melhores do que uma classificação aleatória. Logo abaixo, podemos analisar o funcionamento de um método ensemble.

    Imagem da representação gráfica do processo de criação do modelo ensemble, dividido em três etapas, em um fluxo da esquerda para a direita. O processo começa com os dados, depois parte para os modelos base e, por fim, são unificados em um modelo ensemble.

    Ao tomar decisões importantes, é útil considerar diferentes pontos de vista. Por exemplo, podemos pensar na predição do preço de imóveis. Nesse caso, precisamos estar atentos a várias características da propriedade (como tamanho, configuração, estado de conservação etc.), bem como para características do entorno destes imóveis, para ajudar a prever o preço adequadamente.

    Entretanto, confiar em apenas um modelo preditivo pode não ser a melhor decisão, pois ele pode não ser suficiente para estimar os preços dos imóveis.

    Assim como as decisões embasadas tendem a ser mais sólidas, os métodos Ensemble também seguem essa abordagem. Nesse caso, utilizamos as predições do preço de imóveis de vários modelos preditivos para obter uma predição final mais precisa.

    Com isso, a ideia dos métodos Ensemble é combinar vários modelos base para obter um modelo final aprimorado. Dois métodos populares são o Bagging e o Boosting, cada um com sua abordagem única para a combinação de modelos e aprimoramento do desempenho.

    Bagging

    Trata-se de uma técnica de Ensemble que visa reduzir a variância e, assim, evitar o overfitting. No Bagging, várias instâncias do mesmo algoritmo são treinadas paralelamente em subconjuntos aleatórios e independentes dos dados de treinamento. Esses subconjuntos são criados por meio de amostragem com reposição, o que significa que um mesmo dado pode aparecer em múltiplos subconjuntos, como pode ser analisado na sequência.

    Imagem da representação gráfica do método bagging. Na imagem, em um fluxo de cima para baixo, começamos com um conjunto de dados, que é subdividido em vários subconjuntos para cada classificador. No fim, os classificadores são unificados em um classificador ensemble.

    Os resultados desses modelos base, como se pode analisar na imagem acima, são combinados por média (para problemas de regressão) ou por votação (para problemas de classificação), resultando em uma previsão final mais estável e geralmente mais precisa.

    Um exemplo de algoritmo que faz uso da técnica de Bagging é o RandomForest, que utiliza conjuntos de árvores de decisão. Quando várias árvores se juntam, formam uma floresta (forest). As árvores que compõem uma floresta podem ser rasas (com poucos níveis) ou profundas (com muitos níveis).

    A abordagem do RandomForest é um método de Bagging em que árvores profundas, ajustadas em amostras com reposição, são combinadas para produzir uma saída com menor variância. Por esse motivo, esse algoritmo é conhecido por sua capacidade de lidar com o overfitting.

    Como exemplo prático, vamos supor que estamos trabalhando em um problema de classificação de imagens para distinguir entre gatos e cachorros. Com o RandomForestClassifier, podemos construir diversas árvores de decisão independentes, cada uma delas examinando diferentes características dos pacientes.

    Posteriormente, essas árvores individuais se unem, combinando suas decisões através de votação, para gerar uma classificação final mais robusta e precisa. Podemos conferir o código desse exemplo logo abaixo:

    from sklearn.datasets import load_digits
    from sklearn.model_selection import train_test_split
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.metrics import accuracy_score
    # Carregar os dados
    data = load_digits()
    X = data.data
    y = data.target
    # Dividir os dados em conjuntos de treinamento e teste
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    # Criar o modelo RandomForest
    model = RandomForestClassifier(n_estimators=100, random_state=42)
    # Treinar o modelo
    model.fit(X_train, y_train)
    # Fazer previsões
    predictions = model.predict(X_test)
    # Avaliar a precisão
    accuracy = accuracy_score(y_test, predictions)
    print(f"Precisão do RandomForest: {accuracy:.2f}")
    

    Boosting

    Trata-se dos modelos base que são treinados de forma sequencial, em que cada modelo se concentra em corrigir o modelo anterior. Isso significa que os modelos seguintes dão mais atenção aos dados que foram classificados incorretamente nas etapas anteriores, como se pode reconhecer na imagem abaixo:

    Imagem da representação gráfica do método boosting. Na imagem, em um fluxo de cima para baixo e da esquerda para a direita, começamos com um conjunto de dados, que é utilizado por um classificador. Em seguida, após o classificador avaliar os dados, os dados classificados incorretamente são utilizados no classificador seguinte, para trabalhar em cima do que deu errado, e assim em diante, até o modelo ensemble final.

    À medida que as iterações acontecem, o modelo Ensemble aprimora a sua capacidade de lidar melhor com os padrões complexos nos dados, resultando em uma melhoria contínua no seu desempenho. Assim como um atleta que treina incansavelmente para se tornar cada vez mais habilidoso, ele aprimora sua performance passo a passo.

    No caso do Boosting, temos como exemplo o AdaBoost (Adaptive Boosting), que é um algoritmo que atribui pesos diferentes aos dados durante o treinamento. Ele começa treinando um modelo fraco e, em seguida, atribui pesos maiores aos exemplos classificados incorretamente pelo modelo fraco anterior.

    Os modelos seguintes são treinados para focar nos erros cometidos pelos modelos anteriores. O AdaBoost é capaz de melhorar o desempenho de modelos fracos, criando um modelo final mais forte e preciso.

    Como exemplo prático, vamos seguir o mesmo exemplo utilizado anteriormente. Abaixo, podemos conferir o código do AdaBoost:

    from sklearn.datasets import load_digits
    from sklearn.model_selection import train_test_split
    from sklearn.ensemble import AdaBoostClassifier
    from sklearn.tree import DecisionTreeClassifier
    from sklearn.metrics import accuracy_score
    # Carregar os dados
    data = load_digits()
    X = data.data
    y = data.target
    # Dividir os dados em conjuntos de treinamento e teste
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    # Criar o modelo base (mais complexo)
    base_model = DecisionTreeClassifier(max_depth=5, random_state=42)
    # Criar o modelo AdaBoost com o modelo base
    model = AdaBoostClassifier(base_model, n_estimators=50, random_state=42)
    # Treinar o modelo
    model.fit(X_train, y_train)
    # Fazer previsões
    predictions = model.predict(X_test)
    # Avaliar a precisão
    accuracy = accuracy_score(y_test, predictions)
    print(f"Precisão do AdaBoost: {accuracy:.2f}")
    

    Principais diferenças

    Para resumir as principais diferenças entre os métodos Bagging e Boosting, podemos conferir a tabela abaixo:

    Tabela sobre a comparação entre os métodos ensemble Bagging e Boosting. Na tabela, temos três colunas: A primeira contendo as características, outra do Bagging e a última do Boosting. Abaixo das colunas de Bagging e Boosting estão descritas cada uma das características que diferenciam os dois métodos.

    Como podemos perceber, enquanto o Bagging foca na redução da variância, construindo modelos independentes que são agregados via média ou votação, o Boosting se concentra na mitigação do viés, sequencialmente ajustando modelos para corrigir erros anteriores com uma média ponderada. Além disso, o Bagging tende a ser menos sensível ao overfitting, enquanto o Boosting pode apresentar maior sensibilidade.

    Conclusão

    Os métodos Ensemble constituem uma abordagem fundamental para aprimorar a performance dos modelos, pois combinam múltiplos modelos base em um único modelo final.

    Neste artigo, exploramos como a relação entre o viés e a variância nos modelos, também chamada de “trade-off”, está relacionada com a capacidade de um modelo se ajustar à complexidade dos dados de treinamento e a lidar com dados novos.

    A partir disso, conhecemos dois métodos ensemble que buscam o equilíbrio nessa relação: o Bagging e o Boosting. Enquanto o Bagging opera em paralelo, visando mitigar a variância por meio da média ou votação das previsões, o Boosting adota uma abordagem sequencial, buscando a redução do viés por meio de iterações corretivas.

    A escolha entre esses métodos deve ser guiada pela natureza dos dados e objetivos específicos do modelo.

    E aí, curtiu a leitura? Aqui na Alura temos muitos outros conteúdos para te ajudar a estruturar seus conhecimentos em Machine Learning. Bora mergulhar em tecnologia? Venha estudar conosco! 🤿


    Créditos

    • Conteúdo: Marcelo Cruz
    • Produção técnica: Rodrigo Dias e Bruno Raphael
    • Produção didática: Cláudia Machado
    • Designer gráfico: Alysson Manso
    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Avalie este artigo

    • Foto de Marcelo Cruz

      Autor(a)

      Marcelo Cruz

      Sou formado em Ciência da Computação pela UNIR. Atualmente, sou Instrutor na Escola de Dados. Gosto muito de aprender e compartilhar conhecimento. Apaixonado por Python e Dados.

    Explore por tópico

    • Back-end
    • Dados
    • DevOps
    • Front-end
    • Gestão & Negócios
    • Institucionais
    • Inteligência Artificial
    • Mobile
    • UX & Design

    Leia também

    • 10/11/2024

      A importância da manutenção preventiva no PostgreSQL para garantir desempenho e disponibilidade

      Ler mais
    • 08/05/2024

      O que um DBA precisa saber para trabalhar com o MySQL

      Ler mais
    • 28/09/2021

      Cassandra ou MongoDB: qual a melhor escolha para seu projeto?

      Ler mais
    Ver mais conteúdos

    Inscreva-se em nossa Newsletter

    Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.

    Institucional

    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status
    Institucional
    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status

    A Alura

    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes
    A Alura
    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes

    Conteúdos

    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Conteúdos
    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Alura