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

XGBoost: aprenda este algoritmo de Machine Learning em Python

Carlos Melo por Carlos Melo
agosto 28, 2019
em Machine Learning, Python, Tutoriais
1
252
COMPARTILHAMENTOS
8.4k
VIEWS
Publicar no LinkedInCompartilhar no FacebookCompartilhar no Whatsapp

XGBoost é um dos algoritmos mais utilizados por cientistas de dados, apresentando resultados superiores, principalmente em problemas de previsão envolvendo dados estruturados/tabulares.

Os dados tabulares são aquele tipo de estrutura similar ao que é usado pelo Pandas – DataFrames.

Por suas características, consegue lidar eficientemente (e com robustez) com uma grande variedade de tipos diferentes de dados.

Aprenda a implementar XGBoost em Python.
XGBoost é um dos principais algoritmos usados em competições do Kaggle.

Se você está lidando com problemas de regressão, pontuação ou classificação, definitivamente você precisa aprender a usar o XGBoost.

Neste artigo, vou falar mais sobre esse algoritmo de Machine Learning que vem dominando cada vez mais as competições do Kaggle.

Para acessar o notebook com todo o código, é só clicar no botão abaixo.

E se você está começando agora no universo Python e Data Science, recomendo você baixar gratuitamente meu eBook, clicando na imagem abaixo!

Data Science - como se tornar um cientista de dados
BAIXAR AGORA O EBOOK

Uma introdução ao XGBoost

O nome XGBoost vem de eX*treme *Gradient Boosting, e representa uma categoria de algoritmo baseada em Decision Trees (árvores de decisão) com Gradient Boosting (aumento de gradiente).

O que é o algoritmo de machine learning XGBoost?

Aumento de gradiente significa que o algoritmo usa o algoritmo Gradient Descent para minimizar a perda (loss) enquanto novos modelos vão sendo adicionados.

Extremamente flexível – uma vez que possui um grande número de hiperparâmetros passíveis de aperfeiçoamento -, você consegue ajustar adequadamente o XGBoost para o cenário do seu problema, seja ele qual for.

Árvores de Decisão e Gradient Boosting

Árvores de Decisão são métodos onde existe uma função que recebe um vetor de valores (de atributos) como entrada e retorna uma decisão (de saída).

XGBoost é um tipo de algoritmo baseado em Decision Trees (árvores de decisão)
XGBoost é uma categoria de algoritmo baseada em Decision Trees (árvores de decisão).

Para uma árvore de decisão chegar no valor de saída, executa uma série de etapas, ou testes, criando várias ramificações ao longo do processo.

Cada nó dessa árvore representa uma decisão única. Quanto mais vezes um atributo for usado para as tomadas de decisão, maior será sua importância relativa no modelo.

Gradient Boosting

Gradient Boosting é uma técnica relativamente recente e que se mostrou muito poderosa.

Tamanho é o seu potencial que algoritmos baseados nessa técnica têm ganhando cada vez mais destaque em projetos de Data Science e competições do Kaggle.

O princípio do Gradient Boosting é a capacidade de combinar resultados de muitos classificadores “fracos”, tipicamente árvores de decisão, que se combinam para formar algo parecido com um “comitê forte de decisão”.

Implementando XGBoost com Python

Para mostrar na prática como se implementa o XGBoost, vou usar a API do Kaggle para baixar o dataset House Prices: Advanced Regression Techniques.

Implementando o algoritmo de Machine Learning XGBoost na prática com Python

Se você não conhece a API Kaggle ou não quer usar ela, não tem problema! É só baixar o arquivo zip diretamente do link acima.

Diferentemente do que fizemos no Projeto do Titanic, onde a análise foi completa, aqui o objetivo é mostrar a implementação do XGBoost apenas.

Não irei nem baixar todo o conjunto de dados, apenas um único arquivo: train.csv.

!mkdir -p data
!kaggle competitions download -c house-prices-advanced-regression-techniques -f train.csv -p data

Importando e preparando os dados para o Pandas

Após importar o pacote Pandas, vou importar aquele arquivo csv para dentro de um DataFrame.

Para você entender o dataset, vou listar as 5 primeiras linhas de entrada do modelo. Recomendo que você baixe o notebook na tua máquina e faça o mesmo.

Se você estiver executando diretamente na sua máquina, pode ser que você não tenha instalado o pacote xgboost. Nesse caso, você pode instalar pela linha de comando: pip install xgboost

# importar bibliotecas necessárias
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.impute import SimpleImputer
from xgboost import XGBRegressor
from sklearn.metrics import mean_absolute_error
# importar train.csv em DataFrame
df = pd.read_csv('data/train.csv')
# visualizar as 5 primeiras entradas
df.head()

Já dei uma olhada prévia no modelo e identifiquei que nossa variável alvo é a coluna SalePrice. Também já vi que não existem valores nulos na mesma.

Para não termos que trabalhar as variáveis categóricas aqui, vou eliminar todas as colunas do tipo object e ficar apenas com as variáveis numéricas.

Na sequência, vou separar entre o DataFrame entre as variáveis X e y e dividir o dataset entre conjuntos de treino e teste.

Por último, vou usar a classe SimpleImputer() para lidar rapidamente com os valores ausentes do dataset.

Se você tem alguma dúvida sobre como lidar com valores ausentes ou faltantes, escrevi um artigo falando exatamente sobre isso 🙂

# separar entre as variáveis X e y
y = df['SalePrice']
X = df.drop(['SalePrice'], axis=1).select_dtypes(exclude=['object'])
# dividir entre conjuntos de treino e teste
train_X, test_X, train_y, test_y = train_test_split(X.values, y.values, test_size=0.2)
# lidar com os valores ausentes
df_imputer = SimpleImputer()
train_X = df_imputer.fit_transform(train_X)
test_X = df_imputer.transform(test_X)

Implementando um modelo de XGBoost com Python

Com os nossos dados já preparados, agora é a hora de construir um modelo de Machine Learning XGBoost.

Seguindo o mesmo padrão daquilo que você já está acostumado a fazer com o sklearn, depois de instanciar XGBRegressor() basta executar o método fit(), passando o dataset de treino como argumento.

Na sequência, vamos realizar as previsões e calcular o erro médio absoluto para ver o desempenho do modelo.

# instanciar o modelo XGBoost
model = XGBRegressor()
# chamar o fit para o modelo
model.fit(train_X, train_y, verbose=False)
# fazer previsões em cima do dataset de teste
predictions = model.predict(test_X)
print("Erro Médio Absoluto: {:.2f}".format(mean_absolute_error(predictions, test_y)))

Pronto. Construir um modelo é relativamente rápido se comparado às outras etapas de um projeto.

Entretanto, tem um passo a mais que faz muita diferença nos seus resultados usando esse algoritmo.

Parameter Tunning: ajustando parâmetros do XGBoost

De maneira simples e direta, você viu na etapa anterior como construir um modelo XGBoost. Mas será que é tão simples assim conseguir aqueles resultados incríveis assim nas competições do Kaggle?

Com certeza, não! Se fosse assim, qualquer pessoa poderia estar no topo do ranking.

Parameter Tunning no XGBoost - Ajustando parâmetros.

O primeiro ponto que eu queria ressaltar é que não fizemos nenhuma análise aprofundada durante a etapa exploratória dos nossos dados – a fase mais importante de qualquer projeto de Data Science.

O segundo ponto é que o XGBoost é extremamente robusto e poderoso, mas tem um grande número de parâmetros para serem ajustados ao problema.

Para ajustar esses parâmetros, não tem escapatória. Você tem que entender a teoria por trás do XGBoost, seus conceitos matemáticos e estatísticos.

Evoluindo com a prática

Se você me segue há algum tempo, sabe que eu sou um defensor de botar a mão na massa o quanto antes.

Não existem atalhos em Data Science. Você tem que criar e participar do máximo de projetos que puder. 

Estudando Data Science na Prática com Python.

Não seja uma pessoa que primeiro estuda tudo do assunto para no final começar a escrever códigos.

Muita coisa você vai pegando com a experiência, então minha recomendação é:

  • Começe na prática, replicando métodos e notebooks dos outros;
  • Aprenda a teoria conforme for evoluindo, de acordo com a necessidade

Lembre sempre da analogia da música: você não aprende primeiro anos de teoria musical para somente depois ir tocar o piano. Você aprende a tocar enquanto vai caminhando em paralelo com a teoria.

Por fim, se você está querendo começar uma carreira de cientista de dados, recomendo este meu artigo. 🙂

Compartilhar18Compartilhar101Enviar
Post Anterior

Aplicações de Deep Learning no Espaço

Próximo Post

Como Aprender Data Science?

Carlos Melo

Carlos Melo

Engenheiro de Visão Computacional graduado em Ciências Aeronáuticas pela Academia da Força Aérea (AFA) e Mestre em Engenharia Aeroespacial pelo Instituto Tecnológico de Aeronáutica (ITA).

Relacionado Artigos

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
Visão Computacional

Processamento de Nuvens de Pontos com Open3D e Python

por Carlos Melo
janeiro 2, 2025
Como equalizar histograma de imagens com OpenCV e Python
Python

Equalização de Histograma com OpenCV e Python

por Carlos Melo
julho 16, 2024
Próximo Post
Como Aprender Data Science?

Como Aprender Data Science?

Comentários 1

  1. Margarete Magalhaes says:
    4 anos atrás

    Que didática mais legal !!!!!

    Responder

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

    451 compartilhamentos
    Compartilhar 180 Tweet 113
  • Equalização de Histograma com OpenCV e Python

    112 compartilhamentos
    Compartilhar 45 Tweet 28
  • ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

    385 compartilhamentos
    Compartilhar 154 Tweet 96
  • Geometria da Formação de Imagens: Matrizes, Transformações e Sistemas de Coordenadas

    368 compartilhamentos
    Compartilhar 147 Tweet 92
  • Redes Neurais Convolucionais com Python

    92 compartilhamentos
    Compartilhar 37 Tweet 23
  • 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
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
Trump revoga decreto de Biden sobre regulação de Inteligência Artificial

Trump revoga decreto de Biden sobre regulação de Inteligência Artificial

janeiro 21, 2025

Seguir

  • 🇺🇸 Green Card por Habilidade Extraordinária em Data Science e Machine Learning

Após nossa mudança para os EUA, muitas pessoas me perguntaram como consegui o Green Card tão rapidamente. Por isso, decidi compartilhar um pouco dessa jornada.

O EB-1A é um dos vistos mais seletivos para imigração, sendo conhecido como “The Einstein Visa”, já que o próprio Albert Einstein obteve sua residência permanente através desse processo em 1933.

Apesar do apelido ser um exagero moderno, é fato que esse é um dos vistos mais difíceis de conquistar. Seus critérios rigorosos permitem a obtenção do Green Card sem a necessidade de uma oferta de emprego.

Para isso, o aplicante precisa comprovar, por meio de evidências, que está entre os poucos profissionais de sua área que alcançaram e se mantêm no topo, demonstrando um histórico sólido de conquistas e reconhecimento.

O EB-1A valoriza não apenas um único feito, mas uma trajetória consistente de excelência e liderança, destacando o conjunto de realizações ao longo da carreira.

No meu caso específico, após escrever uma petição com mais de 1.300 páginas contendo todas as evidências necessárias, tive minha solicitação aprovada pelo USCIS, órgão responsável pela imigração nos Estados Unidos.

Fui reconhecido como um indivíduo com habilidade extraordinária em Data Science e Machine Learning, capaz de contribuir em áreas de importância nacional, trazendo benefícios substanciais para os EUA.

Para quem sempre me perguntou sobre o processo de imigração e como funciona o EB-1A, espero que esse resumo ajude a esclarecer um pouco mais. Se tiver dúvidas, estou à disposição para compartilhar mais sobre essa experiência! #machinelearning #datascience
  • 🚀Domine a tecnologia que está revolucionando o mundo.

A Pós-Graduação em Visão Computacional & Deep Learning prepara você para atuar nos campos mais avançados da Inteligência Artificial - de carros autônomos a robôs industriais e drones.

🧠 CARGA HORÁRIA: 400h
💻 MODALIDADE: EAD
📅 INÍCIO DAS AULAS: 29 de maio

Garanta sua vaga agora e impulsione sua carreira com uma formação prática, focada no mercado de trabalho.

Matricule-se já!

#deeplearning #machinelearning #visãocomputacional
  • Green Card aprovado! 🥳 Despedida do Brasil e rumo à nova vida nos 🇺🇸 com a família!
  • Haverá sinais… aprovado na petição do visto EB1A, visto reservado para pessoas com habilidades extraordinárias!

Texas, we are coming! 🤠
  • O que EU TENHO EM COMUM COM O TOM CRUISE??

Clama, não tem nenhuma “semana” aberta. Mas como@é quinta-feira (dia de TBT), olha o que eu resgatei!

Diretamente do TÚNEL DO TEMPO: Carlos Melo &Tom Cruise!
  • Bate e Volta DA ITÁLIA PARA A SUÍÇA 🇨🇭🇮🇹

Aproveitei o dia de folga após o Congresso Internacional de Astronáutica (IAC 2024) e fiz uma viagem “bate e volta” para a belíssima cidade de Lugano, Suíça.

Assista ao vlog e escreve nos comentários se essa não é a cidade mais linda que você já viu!

🔗 LINK NOS STORIES
  • Um paraíso de águas transparentes, e que fica no sul da Suíça!🇨🇭 

Conheça o Lago de Lugano, cercado pelos Alpes Suíços. 

#suiça #lugano #switzerland #datascience
  • Sim, você PRECISA de uma PÓS-GRADUAÇÃO em DATA SCIENCE.
  • 🇨🇭Deixei minha bagagem em um locker no aeroporto de Milão, e vim aproveitar esta última semana nos Alpes suíços!
  • Assista à cobertura completa no YT! Link nos stories 🚀
  • Traje espacial feito pela @axiom.space em parceria com a @prada 

Esse traje será usados pelos astronautas na lua.
para acompanhar as novidades do maior evento sobre espaço do mundo, veja os Stories!

#space #nasa #astronaut #rocket
  • INTERNATIONAL ASTRONAUTICAL CONGRESS - 🇮🇹IAC 2024🇮🇹

Veja a cobertura completa do evento nos DESTAQUES do meu perfil.

Esse é o maior evento de ESPAÇO do mundo! Eu e a @bnp.space estamos representando o Brasil nele 🇧🇷

#iac #space #nasa #spacex
  • 🚀 @bnp.space is building the Next Generation of Sustainable Rocket Fuel.

Join us in transforming the Aerospace Sector with technological and sustainable innovations.
  • 🚀👨‍🚀 Machine Learning para Aplicações Espaciais

Participei do maior congresso de Astronáutica do mundo, e trouxe as novidades e oportunidade da área de dados e Machine Learning para você!

#iac #nasa #spacex
  • 🚀👨‍🚀ACOMPANHE NOS STORIES

Congresso Internacional de Astronáutica (IAC 2024), Milão 🇮🇹
  • Projeto Aeroespacial do final de semana!👨‍🚀
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.