fbpx
Sigmoidal
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
  • English
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
Sigmoidal
Sem Resultado
Ver Todos Resultados

Método de Ensemble: vantagens da combinação de diferentes estimadores

marcelorandolfo por marcelorandolfo
março 6, 2020
em Blog, Data Science, Machine Learning, Python, Teoria
0
30
COMPARTILHAMENTOS
1k
VIEWS
Publicar no LinkedInCompartilhar no FacebookCompartilhar no Whatsapp

Você entende a importância do método de ensemble ao entrar no universo do Machine Learning e ficar perdido com a quantidade de estimadores que temos a disposição.

Temos regressão linear, polinomial e logística, gradiente descendente, XGBoost, máquina de vetores de suporte, naive bayes, árvores de decisão, Random Forest, entre outros.

Método de Ensemble

Todos esses estimadores diferem uns dos outros, pois cada um parte de uma hipótese para tentar entender melhor como os dados se comportam, e assim poder realizar previsões mais robustas.

Vamos falar neste artigo sobre como reunir os pontos fortes de cada modelo individual.

Diferenças entre os estimadores

Antes de entender as vantagens do método de ensemble, você precisa entender as características individuais de alguns estimadores.

Gradiente Descendente

Por exemplo, o estimador de gradiente descendente propõe um valor aleatório inicial para o grupo de parâmetros e calcula o valor da função de custo, que basicamente mede o quanto as previsões do modelo estão distantes dos valores reais.

Esse processo pode ser visualizado na figura abaixo, onde θ* representa o grupo de parâmetros que minimizam o custo, ou seja, que fazem com que as previsões do modelo sejam mais próximas dos valores reais.

Gradiente Descendente.

Após esse cálculo inicial, há uma variação no valor dos parâmetros e novamente é calculado o valor da função de custo. Esse ajuste dos parâmetros é feito diversas vezes, até que os parâmetros que minimizam a função custo sejam encontrados.

Máquina de Vetores de Suporte (SVM)

Por sua vez, na construção de um modelo de classificação, a máquina de vetores de suporte procura estabelecer uma linha de separação entre os dados relativos às diferentes classes.

Essa relação é mais fácil de ser entendida visualmente, conforme a figura abaixo.

Máquina de Vetores de Suporte.

A linha pontilhada preta representa a fronteira de decisão do modelo de vetores de suporte, tudo que está à esquerda da linha pontilhada preta o modelo classifica como uma bolinha azul, ao passo que tudo que está a direita é classificado como um quadrado vermelho.

A linha azul pontilhada e a vermelhada pontilhada são chamadas de vias, e a bolinha azul e o quadrado vermelho em destaque, são os vetores de suporte, razão do nome do estimador.

Os vetores que estão entre as linhas azul e vermelha estão violando a margem, no caso, o modelo procura achar a maior distância possível entre as duas linhas coloridas, mas com o menor número de violações.

Árvore de Decisão

De forma muito mais intuiva e passível de ser feita até manualmente, temos o algoritmo de árvore de decisão.

Basicamente, o algoritmo determina um ponto de divisão em uma determinada categoria, de forma a separar melhor as diferentes classes.

Árvore de Decisão.

Por exemplo, digamos que você trabalha em um banco e quer saber se deve ou não disponibilizar um valor maior de crédito para um determinado cliente, e para isso monta uma árvore de decisão. Essa árvore pode ser visualizada na figura acima.

A primeira etapa da árvore determina se o cliente é adulto ou jovem. Se for adulto, você pode disponibilizar o crédito, caso contrário você deve olhar se o cliente é ou não um estudante. Sendo estudante, você pode disponibilizar um crédito extra, caso contrário, o crédito não deve ser disponibilizado.

O algoritmo de árvore de decisão faz exatamente isso, mas claro, de forma muito mais completa, analisando várias categorias e diferentes pontos de divisão.

Comparando os 3 modelos

Dada essa breve explicação sobre três estimadores, podemos perceber que as hipóteses utilizadas em cada um pra observar o relacionamento entre os dados, são bem diferentes entre si. Com essa diferença, é crível pensar que as previsões feitas por cada estimador podem também ser diferentes.

Para observar essas diferenças nas previsões, estimei três modelos utilizando gradiente descendente (SGDClassifier), máquina de vetores de suporte (SVC) e árvore de decisão (DecisionTreeClassifier), com o objetivo de prever se um determinado passageiro do Titanic sobreviveu ou não ao acidente.

Método de Ensemble

Esse é um desafio muito famoso do Kaggle, se você não conhece sugiro ler os dois artigos aqui do Sigmoidal que falam sobre esse desafio.

Os modelos estimados utilizaram somente os dados de treino disponibilizados pelo Kaggle, pois era necessário saber se um passageiro sobreviveu ou não ao acidente pra observar a diferença nas previsões.

Como os estimadores de gradiente descendente e vetores de suporte são sensíveis a escala dos dados, fiz o escalonamento utilizando o StandardScaler. O código completo do projeto pode ser visto aqui.

Realizando as previsões dos três modelos, observe os seguintes resultados para cinco passageiros em específico.

Previsões feitas pelos modelos.

A coluna Survived nos diz se o passageiro realmente sobreviveu, valor 1, ou não, valor 0.

Temos que para o primeiro passageiro, 566, os três modelos previram corretamente que ele não sobreviveu, ao passo que para o terceiro passageiro, 242, os três modelos previram corretamente que ele sobreviveu.

Para o segundo passageiro, 554, somente o modelo de gradiente descendente fez a previsão correta, mas esse estimador foi o único que errou a previsão do último passageiro, 818.

Para o quarto passageiro, 537, os modelos de gradiente descendente e vetores de suporte foram assertivos na sua previsão, mas o modelo de árvore de decisão cometeu um erro.

A questão é que não há um modelo perfeito, se não seria fácil demais criar modelos de Machine Learning.

O ponto aqui é ressaltar que para alguns passageiros, certos modelos performam de maneira mais satisfatória em relação a outros. 

Existe uma maneira simples de criar um estimador capaz de reunir os pontos fortes de cada modelo individual, é o chamado Classificador de Votação.

Método de Ensemble – Classificador de Votação

Esse classificador é um método de ensemble, que basicamente tem como objetivo combinar as previsões de diversos modelos, sendo que a previsão final é aquela que ocorre com maior frequência.

Por exemplo, observe abaixo o resultado do classificador de votação para os mesmos cinco passageiros analisados anteriormente. No caso, o VotingClassifier fez a combinação dos três modelos.

Previsões feitas pelos modelos incluindo o Classificador de Votação.

Para o primeiro passageiro, não houve resultado distinto, todos os modelos tiveram como resultado que o passageiro não sobreviveu, logo, o classificador de votação manteve esse resultado.

O mesmo é observado no resultado para o terceiro passageiro. Para o quarto passageiro, dois modelos previram que o passageiro não sobreviveu, enquanto um modelo previu que ele tinha sobrevivido.

Nesse caso, o classificador de votação determina como previsão final que o passageiro não sobreviveu, dado que mais estimadores alegaram esse resultado. Podemos observar essa relação assertiva de decisão pela maioria, também no resultado do último passageiro.

Claro que esse classificador não é perfeito.

Para o segundo passageiro, o modelo de gradiente descendente foi o único que previu corretamente o resultado. Como a maioria dos estimadores errou, o classificador de votação também errou.

Essa relação de maioria é chamado de hard voting, mas há também o soft voting, no qual o resultado final é baseado na probabilidade do valor ser 0 ou 1.

Mas para isso, o estimador usado deve dar suporte a previsão baseada em probabilidades de ocorrência das classes, coisa que o gradiente descendente e a máquina de vetores de suporte não fazem diretamente.

Para saber mais sobre essa diferenciação, sugiro dar uma olhada na documentação do classificador de votação.

Desempenho do Método de Ensemble

Mesmo cometendo erros, como observado para o segundo passageiro, o classificador geralmente consegue performar melhor do que os estimadores individualmente. De acordo com Aurélien Géron [1],

mesmo que cada estimador seja um aprendiz fraco (o que significa que sua classificação é apenas um pouco melhor do que adivinhações aleatórias), o conjunto ainda pode ser um forte aprendiz (alcançando alta acurácia).

Podemos observar essa característica ao obter a acurácia de cada modelo individualmente, além da acurácia com o classificador de votação. Esse resultado por ser visualizado abaixo.

No caso, o modelo de máquina de vetores de suporte é o que performa melhor entre os modelos individuais, mas ainda assim é uma performance pouco pior que do classificador de votação.

Acurácia dos modelos.

Porém, ao utilizar o VotingClassifier devemos nos preocupar com um detalhe: os estimadores utilizados em conjunto devem ser bem diferentes.

Isso é necessário porque a hipótese do classificador de votação é que os estimadores devem ser independentes, ou seja, os erros dos modelos devem ser não correlacionados.

Como os modelos são treinados com os mesmos dados, o que já aumenta a chance de correlação dos erros, devemos utilizar pelo menos estimadores com hipóteses diferentes, como as que foram descritas no início do artigo.

A razão disso é óbvia, dado que os dados de treino são os mesmos, se os estimadores forem parecidos, cometerão os mesmos erros, o que torna inútil o uso do classificador.

Tendo atenção a esse detalhe, o uso do classificador é bastante útil para melhorar a acurácia dos modelos de classificação, como já visto anteriormente.

Para ratificar esse detalhe, eu estimei os mesmos três modelos individualmente e combinando também com o VotingClassifier utilizando todos os dados de treino disponibilizados pelo Kaggle,e testei nos dados de teste com o objetivo de submeter as previsões no desafio do Titanic (lembrando que os códigos podem ser vistos aqui). Nas figuras abaixo podemos observar os resultados obtidos.

Resultados obtidos pelos modelos no desafio do Kaggle.

No caso, o classificador de votação também performou melhor do que os estimadores individuais nos dados de teste, obtendo um score mais elevado.

Combinando essa técnica de ensemble com métodos de otimização e feature engineering, podemos melhorar ainda mais nossos resultados. Mas isso fica para um próximo artigo!


Para qualquer dúvida, opinião, sugestão, deixe um comentário aqui no post ou entre em contato comigo lá no LinkedIn! Vou gostar de ter seu feedback.


Referência:

[1] Hands-On Machine Learning With Scikit-Learn and TensorFlow. Aurélien Géron, 2017.

Compartilhar2Compartilhar12Enviar
Post Anterior

Reduzindo Turnover Com Machine Learning

Próximo Post

Guia Básico de Pré-Processamento de Dados

marcelorandolfo

marcelorandolfo

Relacionado Artigos

O Que é Amostragem e Quantização no Processamento de Imagens
Artigos

O Que é Amostragem e Quantização no Processamento de Imagens

por Carlos Melo
junho 20, 2025
Curso de Pós-Graduação em Data Science
Data Science

Vale a pena fazer uma Pós-Graduação em Data Science?

por Carlos Melo
janeiro 20, 2025
Review do Livro “Mãos à obra: Aprendizado de Máquina com Scikit-Learn, Keras & TensorFlow”
Livros

Review do Livro “Mãos à obra: Aprendizado de Máquina com Scikit-Learn, Keras & TensorFlow”

janeiro 18, 2025
Carlos Melo e Sérgio Sacani – Ciência Sem Fim
Youtube

Carlos Melo e Sérgio Sacani – Ciência Sem Fim

por Carlos Melo
janeiro 16, 2025
Carlos Melo da Pós Graduação em Data Science do Sigmoidal
Aeroespacial

Oportunidades no Setor Espacial para Cientistas de Dados

por Carlos Melo
janeiro 15, 2025
Próximo Post
Guia Básico de Pré-Processamento de Dados

Guia Básico de Pré-Processamento de Dados

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Pós-Graduação em Data Science Pós-Graduação em Data Science Pós-Graduação em Data Science

Mais Populares

  • Introdução ao MediaPipe e Pose Estimation

    Introdução ao MediaPipe e Pose Estimation

    483 compartilhamentos
    Compartilhar 193 Tweet 121
  • ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

    405 compartilhamentos
    Compartilhar 162 Tweet 101
  • Processamento de Nuvens de Pontos com Open3D e Python

    43 compartilhamentos
    Compartilhar 17 Tweet 11
  • O Que é Amostragem e Quantização no Processamento de Imagens

    5 compartilhamentos
    Compartilhar 2 Tweet 1
  • Geometria da Formação de Imagens: Matrizes, Transformações e Sistemas de Coordenadas

    381 compartilhamentos
    Compartilhar 152 Tweet 95
  • Em Alta
  • Comentários
  • Mais Recente
Como Tratar Dados Ausentes com Pandas

Como Tratar Dados Ausentes com Pandas

agosto 13, 2019
Como usar o DALL-E 2 para gerar imagens a partir de textos

Como usar o DALL-E 2 para gerar imagens a partir de textos

dezembro 25, 2022
Introdução ao MediaPipe e Pose Estimation

Introdução ao MediaPipe e Pose Estimation

julho 15, 2023

ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

abril 10, 2023
Como Analisar Ações da Bolsa com Python

Como Analisar Ações da Bolsa com Python

15
Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

13
Como Aprender Data Science?

Como Aprender Data Science?

9
Qual o Cenário de Data Science no Brasil hoje?

Qual o Cenário de Data Science no Brasil hoje?

8
O Que é Amostragem e Quantização no Processamento de Imagens

O Que é Amostragem e Quantização no Processamento de Imagens

junho 20, 2025
DeepSeek vazamento de dados de usuários

DeepSeek: Vazamento de dados expõe dados de usuários

fevereiro 1, 2025
DeepSeek R1 vs OpenAI o1 – Qual é o Melhor Modelo de IA

DeepSeek R1 vs OpenAI o1 – Qual é o Melhor Modelo de IA?

janeiro 25, 2025
Trump Anuncia Investimento de US$ 500 Bilhões em Infraestrutura de IA

Trump Anuncia Investimento de US$ 500 Bilhões em Infraestrutura de IA

janeiro 22, 2025

Seguir

  • 🎙️ Corte da minha conversa com o Thiago Nigro, no PrimoCast #224

Falamos sobre por que os dados são considerados o novo petróleo - para mim, dados são o novo bacon!

Expliquei como empresas que dominam a ciência de dados ganham vantagem real no mercado. Não por armazenarem mais dados, mas por saberem o que fazer com eles.

Também conversamos sobre as oportunidades para quem quer entrar na área de tecnologia. Data Science é uma das áreas mais democráticas que existem. Não importa sua idade, formação ou cidade. O que importa é a vontade de aprender.

Se você quiser ver o episódio completo, é só buscar por Primocast 224.

“O que diferencia uma organização de outra não é a capacidade de armazenamento de dados; é a capacidade de seu pessoal extrair conhecimento desses dados.”

#machinelearning #datascience #visãocomputacional #python
  • 📸 Palestra que realizei no palco principal da Campus Party #15, o maior evento de tecnologia da América Latina!

O tema que escolhi foi "Computação Espacial", onde destaquei as inovações no uso de visão computacional para reconstrução 3D e navegação autônoma.

Apresentei técnicas como Structure-from-Motion (SFM), uma técnica capaz de reconstruir cidades inteiras (como Roma) usando apenas fotos publicadas em redes sociais, e ORB-SLAM, usada por drones e robôs para mapeamento em tempo real.

#visãocomputacional #machinelearning #datascience #python
  • ⚠️❗ Não deem ideia para o Haddad! 

A França usou Inteligência Artificial para detectar mais de 20 mil piscinas não declaradas a partir de imagens aéreas.

Com modelos de Deep Learning, o governo identificou quem estava devendo imposto... e arrecadou mais de €10 milhões com isso.

Quer saber como foi feito? Veja no post completo no blog do Sigmoidal: https://sigmoidal.ai/como-a-franca-usou-inteligencia-artificial-para-detectar-20-mil-piscinas/

#datascience #deeplearning #computerVision #IA
  • Como aprender QUALQUER coisa rapidamente?

💡 Comece com projetos reais desde o primeiro dia.
📁 Crie um portfólio enquanto aprende. 
📢 E compartilhe! Poste, escreva, ensine. Mostre o que está fazendo. Documente a jornada, não o resultado.

Dois livros que mudaram meu jogo:
-> Ultra Aprendizado (Scott Young)
-> Uma Vida Intelectual (Sertillanges)

Aprenda em público. Evolua fazendo.

#ultralearning #estudos #carreira
  • Como eu usava VISÃO COMPUTACIONAL no Centro de Operações Espaciais, planejando missões de satélites em situações de desastres naturais.

A visão computacional é uma fronteira fascinante da tecnologia que transforma a forma como entendemos e respondemos a desastres e situações críticas. 

Neste vídeo, eu compartilho um pouco da minha experiência como Engenheiro de Missão de Satélite e especialista em Visão Computacional. 

#VisãoComputacional #DataScience #MachineLearning #Python
  • 🤔 Essa é a MELHOR linguagem de programação, afinal?

Coloque sua opinião nos comentários!

#python #datascience #machinelearning
  • 💘 A história de como conquistei minha esposa... com Python!

Lá em 2011, mandei a real:

“Eu programo em Python.”
O resto é história.
  • Para rotacionar uma matriz 2D em 90°, primeiro inverto a ordem das linhas (reverse). Depois, faço a transposição in-place. Isso troca matrix[i][j] com matrix[j][i], sem criar outra matriz. A complexidade segue sendo O(n²), mas o uso de memória se mantém O(1).

Esse padrão aparece com frequência em entrevistas. Entender bem reverse + transpose te prepara para várias variações em matrizes.

#machinelearning #visaocomputacional #leetcode
  • Na última aula de estrutura de dados, rodei um simulador de labirintos para ensinar como resolver problemas em grids e matrizes.

Mostrei na prática a diferença entre DFS e BFS. Enquanto a DFS usa stacks, a BFS utiliza a estrutura de fila (queue). Cada abordagem tem seu padrão de propagação e uso ideal.

#machinelearning #visaocomputacional #algoritmos
  • 🔴 Live #2 – Matrizes e Grids: Fundamentos e Algoritmos Essenciais

Na segunda aula da série de lives sobre Estruturas de Dados e Algoritmos, o foco será em Matrizes e Grids, estruturas fundamentais em problemas de caminho, busca e representação de dados espaciais.

📌 O que você vai ver:

Fundamentos de matrizes e grids em programação
Algoritmos de busca: DFS e BFS aplicados a grids
Resolução ao vivo de problemas do LeetCode

📅 Terça-feira, 01/07, às 22h no YouTube 
🎥 (link nos Stories)

#algoritmos #estruturasdedados #leetcode #datascience #machinelearning
  • 💡 Quer passar em entrevistas técnicas?
Veja essa estratégia para você estudar estruturas de dados em uma sequência lógica e intuitiva.
⠀
👨‍🏫 NEETCODE.io
⠀
🚀 Marque alguém que também está se preparando!

#EntrevistaTecnica #LeetCode #MachineLearning #Data Science
  • Live #1 – Arrays & Strings: Teoria e Prática para Entrevistas Técnicas

Segunda-feira eu irei começar uma série de lives sobre Estruturas de Dados e Algoritmos. 

No primeiro encontro, falarei sobre um dos tipos de problemas mais cobrados em entrevistas: Arrays e Strings.

Nesta aula, você vai entender a teoria por trás dessas estruturas, aprender os principais padrões de resolução de problemas e aplicar esse conhecimento em exercícios selecionados do LeetCode.

📅 Segunda-feira, 23/06, às 21h no YouTube

🎥 (link nos Stories)

#machinelearning #datascience #cienciadedados #visãocomputacional
  • 🤖 Robôs que escalam, nadam, voam e rastejam.

Acabei de ver o que a Gecko Robotics está fazendo — e é impressionante.
Eles usam robôs que escalam, rastejam, nadam e voam para coletar dados estruturais de ativos físicos como navios, refinarias e usinas de energia.

Depois, tudo isso entra numa plataforma de AI chamada Cantilever, que combina:

✅ Ontologias baseadas em princípios físicos
✅ Edge robotics + sensores fixos
✅ Modelos preditivos para manutenção e operação

É como se estivessem criando um Digital Twin confiável de infraestruturas críticas — com dados de verdade, coletados direto do mundo físico.

Ah, e agora alcançaram status de unicórnio 🦄:
$1.25B de valuation, com foco em defesa, energia e manufatura pesada.

#MachineLearning #Robótica #MLOps #visãocomputacional
  • 🚨 FALTAM 2 DIAS!
As inscrições para a nova Pós em Visão Computacional & Deep Learning encerram neste domingo, 8 de junho, às 23h59.

Essa é sua chance de dominar IA aplicada, com foco total em projetos, e conquistar oportunidades como Machine Learning Engineer ou Computer Vision Specialist, no Brasil ou no exterior.

🔗 Link na bio para garantir sua vaga com bônus e valor promocional!

#VisaoComputacional #DeepLearning
  • 🤔🤔🤔 verdade ou mentira??
  • 🚀 NOVA PÓS EM VISÃO COMPUTACIONAL!

Seja especialista em Visão Computacional e Deep Learning! 

✔️ 400h de conteúdo
✔️ Curso reconhecido pelo MEC
✔️ Foco em prática e projetos reais

💡 1 CURSO, 2 CARREIRAS
Atue como Machine Learning Engineer E Computer Vision Engineer! 

📅 Aula de lançamento: 1º de junho, 20h

📍 Link na bio. Ative o lembrete e participe!

#computervision #machinelearning #datascience
Instagram Youtube LinkedIn Twitter
Sigmoidal

O melhor conteúdo técnico de Data Science, com projetos práticos e exemplos do mundo real.

Seguir no Instagram

Categorias

  • Aeroespacial
  • Artigos
  • Blog
  • Carreira
  • Cursos
  • Data Science
  • Deep Learning
  • Destaques
  • Entrevistas
  • IA Generativa
  • Livros
  • Machine Learning
  • Notícias
  • Python
  • Teoria
  • Tutoriais
  • Visão Computacional
  • Youtube

Navegar por Tags

camera calibration carreira chatgpt cientista de dados cnn computer vision Cursos dados desbalanceados data science data science na prática decision tree deep learning gpt-3 histograma IA generativa image formation inteligência artificial jupyter kaggle keras machine learning matplotlib mnist nft openai opencv overfitting pandas profissão python redes neurais redes neurais convolucionais regressão linear regressão logística salário scikit-learn seaborn sklearn tensorflow titanic tutorial visão computacional vídeo youtube árvore de decisão

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

Sem Resultado
Ver Todos Resultados
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
  • English

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.