fbpx
Sigmoidal
No Result
View All Result
  • Home
  • Data Science
    Data Science no exterior - como fazer uma Cover Letter

    Como escrever uma Cover Letter poderosa para Data Science

    GESTÃO DE DADOS: aprenda Data Science ou pague o preço de uma decisão errada | PrimoCast com Thiago Nigro

    Aprenda Data Science ou pague o preço de uma decisão errada

    Como a França usou Inteligência Artificial para detectar 20 mil piscinas

    Como a França usou Inteligência Artificial para detectar 20 mil piscinas

    ChatGPT: A Inteligência Artificial que vai escrever seus códigos

    ChatGPT: A Inteligência Artificial que vai escrever seus códigos

    7 livros essenciais para aprender Data Science em 2023

    7 livros essenciais para aprender Data Science em 2023

    Como a banda Metallica usa Data Science

    Como a banda Metallica usa Data Science

    Entrevista com Rodrigo Gianotto, CTO do Grupo Primo

    Entrevista com Rodrigo Gianotto, CTO do Grupo Primo

    Use a estratégia da Apollo 13 para conseguir uma vaga no mercado

    Use a estratégia da Apollo 13 para conseguir uma vaga no mercado

    Python para análise de ações e investimentos

    Python para análise de ações e investimentos

    Trending Tags

    • Python
      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

      aprenda python do zero - curso gratuito

      Projeto Python: um plano à prova de desculpas

      Entrevista com Rodrigo Gianotto, CTO do Grupo Primo

      Entrevista com Rodrigo Gianotto, CTO do Grupo Primo

      Projeto Python do Zero: evento 100% gratuito

      Projeto Python do Zero: evento 100% gratuito

      Aprenda Python e se destaque no mercado

      Aprenda Python e se destaque no mercado

      Python para análise de ações e investimentos

      Python para análise de ações e investimentos

      Como fazer gráficos rotulados em Python

      Como fazer gráficos rotulados em Python

      Trabalhando com Dados Desbalanceados

      Trabalhando com Dados Desbalanceados

      Detector de Fadiga usando Python

      Detector de Fadiga usando Python

      Trending Tags

      • Tutoriais
        Crie um sistema de vigilância com drones e Deep Learning

        Crie um sistema de vigilância com drones e Deep Learning

        Detector de Fadiga usando Python

        Detector de Fadiga usando Python

        Reduzindo Turnover Com Machine Learning

        Reduzindo Turnover Com Machine Learning

        Séries Temporais (Time Series) com Python

        Séries Temporais (Time Series) com Python

        Como Analisar Ações da Bolsa com Python

        Como Analisar Ações da Bolsa com Python

        Como criar gráficos interativos usando Plotly e Python

        Como criar gráficos interativos usando Plotly e Python

        Como salvar seu modelo de Machine Learning

        Como salvar seu modelo de Machine Learning

        Como lidar com dados desbalanceados?

        Como lidar com dados desbalanceados?

        Big Data: Como instalar o PySpark no Google Colab

        Big Data: Como instalar o PySpark no Google Colab

        Trending Tags

        • Vídeos
          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

          ChatGPT: A Inteligência Artificial que vai escrever seus códigos

          ChatGPT: A Inteligência Artificial que vai escrever seus códigos

          7 livros essenciais para aprender Data Science em 2023

          7 livros essenciais para aprender Data Science em 2023

          Entrevista com Rodrigo Gianotto, CTO do Grupo Primo

          Entrevista com Rodrigo Gianotto, CTO do Grupo Primo

          Crie um sistema de vigilância com drones e Deep Learning

          Crie um sistema de vigilância com drones e Deep Learning

          Python para análise de ações e investimentos

          Python para análise de ações e investimentos

          7 Livros de Data Science em 2021

          7 Livros de Data Science em 2021

          Detector de Fadiga usando Python

          Detector de Fadiga usando Python

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

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

          Trending Tags

          No Result
          View All Result
          Sigmoidal
          No Result
          View All Result

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

          marcelorandolfo by marcelorandolfo
          junho 7, 2022
          in Blog, Data Science, Machine Learning, Python, Teoria
          0
          Home Blog
          13
          SHARES
          425
          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.

          Tags: árvore de decisãoclassificador de votaçãodata scienceensembleestimadoresgradient descentgradiente descendentemachine learningsvm
          Previous Post

          Reduzindo Turnover Com Machine Learning

          Next Post

          Guia Básico de Pré-Processamento de Dados

          marcelorandolfo

          marcelorandolfo

          Related Posts

          Data Science no exterior - como fazer uma Cover Letter
          Artigos

          Como escrever uma Cover Letter poderosa para Data Science

          by rafael
          janeiro 16, 2023
          GESTÃO DE DADOS: aprenda Data Science ou pague o preço de uma decisão errada | PrimoCast com Thiago Nigro
          Data Science

          Aprenda Data Science ou pague o preço de uma decisão errada

          by Carlos Melo
          janeiro 7, 2023
          Como usar o DALL-E 2 para gerar imagens a partir de textos
          Deep Learning

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

          by Carlos Melo
          dezembro 27, 2022
          Como a França usou Inteligência Artificial para detectar 20 mil piscinas
          Deep Learning

          Como a França usou Inteligência Artificial para detectar 20 mil piscinas

          by Carlos Melo
          janeiro 7, 2023
          ChatGPT: A Inteligência Artificial que vai escrever seus códigos
          Artigos

          ChatGPT: A Inteligência Artificial que vai escrever seus códigos

          by Carlos Melo
          dezembro 20, 2022
          Next 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 *

          Destaques Sigmoidal

          Detector de Fadiga usando Python

          Detector de Fadiga usando Python

          agosto 10, 2022
          NFT e artes criadas por Inteligência Artificial

          NFT e artes criadas por Inteligência Artificial

          julho 8, 2022
          7 Livros de Data Science em 2021

          7 Livros de Data Science em 2021

          agosto 3, 2022

          Navegar por Categoria

          • Artigos
          • Blog
          • Carreira
          • Colunistas
          • Cursos
          • Data Science
          • Deep Learning
          • Destaques
          • Entrevistas
          • Inglês
          • Iniciantes
          • Inteligência Artificial
          • Livros
          • Machine Learning
          • NFT
          • Notícias
          • Projetos
          • Python
          • Teoria
          • Tutoriais
          • Visão Computacional
          • Youtube

          Navegar por Tags

          ações cancer carreira ciencia de dados cientista de dados cnn Cursos dados desbalanceados data science data science na prática decision tree deep learning gis gpt-3 gráficos healthcare iniciantes jupyter kaggle keras machine learning matplotlib medicina mnist nft nlp pandas personal branding plotly portfólio profissão python random forest redes neurais redes neurais convolucionais regressão logística seaborn sklearn tensorflow titanic vagas visualização de dados vídeo youtube árvore de decisão
          Sigmoidal

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

          Seguir no Instagram

          Categorias

          • Artigos
          • Blog
          • Carreira
          • Colunistas
          • Cursos
          • Data Science
          • Deep Learning
          • Destaques
          • Entrevistas
          • Inglês
          • Iniciantes
          • Inteligência Artificial
          • Livros
          • Machine Learning
          • NFT
          • Notícias
          • Projetos
          • Python
          • Teoria
          • Tutoriais
          • Visão Computacional
          • Youtube

          Navegar por Tags

          ações cancer carreira ciencia de dados cientista de dados cnn Cursos dados desbalanceados data science data science na prática decision tree deep learning gis gpt-3 gráficos healthcare iniciantes jupyter kaggle keras machine learning matplotlib medicina mnist nft nlp pandas personal branding plotly portfólio profissão python random forest redes neurais redes neurais convolucionais regressão logística seaborn sklearn tensorflow titanic vagas visualização de dados vídeo youtube árvore de decisão

          Artigos Recentes

          • Como escrever uma Cover Letter poderosa para Data Science
          • Aprenda Data Science ou pague o preço de uma decisão errada
          • Como usar o DALL-E 2 para gerar imagens a partir de textos

          © 2023 Sigmoidal - Aprenda Data Science e Python na prática.

          No Result
          View All Result
          • Home
          • Artigos
          • Tutoriais
          • YouTube
          • Contato

          © 2023 Sigmoidal - Aprenda Data Science 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

          INSCRIÇÕES ABERTAS

          DATA SCIENCE

          NA PRÁTICA

          RESERVE SUA VAGA
          Are you sure want to unlock this post?
          Unlock left : 0
          Are you sure want to cancel subscription?