+ - 0:00:00
Notes for current slide
Notes for next slide

XGBoost

Teoria e prática

2021-11-20

1 / 27

Professores

Athos Damiani

Estatístico no IME/USP

Senior Data Scientist na Nubank

Daniel Falbel

Estatístico no IME/USP

Software Engineer na RStudio

2 / 27

Dinâmica curso

  • As aulas serão um espaço de teoria, exemplos e dúvidas.

  • Teremos exercícios para serem feitos "em casa" e um trabalho final (Kaggle!). Com exceção da entrega final, nenhum exercício precisará ser entregue.

  • O certificado será emitido mediante uma entrega final. O prazo da entrega final será estabelecido ao longo do curso.

  • Haverá monitoria para esclarecimento de dúvidas sempre 30 minutos antes do início das aulas.

3 / 27

Tirando dúvidas

  • Não existe dúvida idiota.

  • Fora do horário de aula ou monitoria:

    • perguntas gerais sobre o curso deverão ser feitas no Classroom.

    • perguntas sobre R ou Machine Learning, principalmente as que envolverem código, sugerimos serem enviadas no nosso discourse.

4 / 27

Por que usar o discourse?

  • Aprender a pesquisar sobre erros que o R solta e fazer a pergunta certa é essencial para aprender e resolver problemas de programação.

  • No discourse, teremos mais pessoas acompanhando e respondendo as dúvidas.

  • Em um ambiente aberto, as suas dúvidas vão contribuir com a comunidade (a sua dúvida pode ser a mesma que a da outra pessoa!).

https://discourse.curso-r.com/

5 / 27

Conteúdo

  • Introdução

  • Árvore de Decisão - Mini-revisão

  • XGBoost - Teoria

  • XGBoost - passo a passo

  • Hiperparâmetros/Estratégias

6 / 27

Agenda

Aulas 1 e 2 - Intro e Teoria

  • Google Classroom + Introdução
  • Mostrar as contas na mão num exemplo de 4 pontos (regressão)
  • Mostrar as diferenças entre classificação e regressão
  • Exercícios de Script (algoritmo na mao feito em R)

Aula 3 - Na prática

  • Pacote tidymodels
  • Como que a matriz X tem que ir (dummy etc)
  • Overfitting/Computação
  • Exercício de treino de tunagem
  • Kaggle InClass
7 / 27

Referências

8 / 27

Referências

9 / 27

Referências

10 / 27

XGBoost

11 / 27

XGBoost

12 / 27

Alinhamento de conceitos

13 / 27

XGBoost

O que XGBoost é:

  • Um algoritmo de machine learning

  • Um modelo estatístico

  • Um fornecedor de probabilidades/estimativas

  • Um "concorrente" de regressão logística, random forest, redes neurais, etc.

  • Difícil de entender =)

O que XGBoost NÃO é:

  • Magia

  • Bala de prata para qualquer problema

  • Pior que deep learning

  • Melhor que deep learning

14 / 27

XGBoost

Coisas boas

  • Bom para dados tabulares. Preparado para bases arbitrariamente grandes.

  • Serve para classificação, regressão, séries temporais, ranqueamento, análise de sobrevivência.

  • Bom para quando precisamos de boas previsões.

  • Implementado nas principais ferramentas de ciência de dados.

Coisas ruins

  • Possui mais hiperparâmetros do que os demais algoritmos.

  • Difícil de explicar ao gestor como funciona em poucas palavras.

  • Menos interpretável do que regressão linear e árvore de decisão.

15 / 27

XGBoost

Objetivos do Curso

Ao final do curso, a aluna/o aluno

  • Saberá explicar como o XGBoost funciona.

  • Terá mais uma opção de escolha além da regressão logística/linear, random forest, redes neurais, knn, entre outras.

  • Ficará a vontade em propor o uso de XGBoost em seu trabalho.

16 / 27

17 / 27

No R

# XGBoost
modelo_xgb <- boost_tree(
min_n = tune(),
mtry = tune(),
trees = tune(),
tree_depth = tune(),
learn_rate = tune(),
loss_reduction = tune(),
sample_size = tune()
)
18 / 27

Intuição das somas de árvores

Cada "step" é uma árvore

19 / 27

XGBoost

Exemplo passo-a-passo (no pptx)

20 / 27

Intuição dos hiperparâmetros

21 / 27

Intuição dos hiperparâmetros

modelo <- boost_tree(
mtry = 1,
trees = 100,
min_n = 1,
tree_depth = 1,
learn_rate = 1,
sample_size = 1,
loss_reduction = 1
)

modelo <- boost_tree(
mtry = 1,
trees = 100,
min_n = 1,
tree_depth = 2,
learn_rate = 1,
sample_size = 1,
loss_reduction = 1
)

22 / 27

Intuição dos hiperparâmetros

modelo <- boost_tree(
mtry = 1,
trees = 100,
min_n = 1,
tree_depth = 1,
learn_rate = 0.1,
sample_size = 1,
loss_reduction = 1
)

modelo <- boost_tree(
mtry = 1,
trees = 100,
min_n = 1,
tree_depth = 1,
learn_rate = 1,
sample_size = 0.5,
loss_reduction = 1
)

23 / 27

Intuição dos hiperparâmetros

modelo <- boost_tree(
mtry = 1,
trees = 100,
min_n = 1,
tree_depth = 1,
learn_rate = 1,
sample_size = 1,
loss_reduction = 0.1
)

modelo <- boost_tree(
mtry = 1,
trees = 100,
min_n = 1,
tree_depth = 2,
learn_rate = 0.1,
sample_size = 0.5,
loss_reduction = 0.1
)

24 / 27

Extrapolação dos modelos de árvores

25 / 27

XGBoost

Na prática

26 / 27

Sobre os problemas nos dados

  • XGBoost trata missing automaticamente dentro dele, não precisa tratar. Porém, sempre vale técnicas de imputação para tentar aprimorar o modelo!

  • Multicolinearidade não é um problema grave para modelos de árvore. Mas é sempre bom filtrar variáveis explicativas muito correlacionadas. Ler esse post para exemplo.

  • Variável resposta precisa ir como factor. Não pode ser character nem 0/1.

  • As variáveis categóricas precisam ser "dummyficadas" antes. XGBoost só aceita explicativas numéricas.

  • A escala das variáveis explicativas não atrapalham modelos de árvores.

  • A assimetria das variáveis explicativas não atrapalham modelos de árvores.

27 / 27

Professores

Athos Damiani

Estatístico no IME/USP

Senior Data Scientist na Nubank

Daniel Falbel

Estatístico no IME/USP

Software Engineer na RStudio

2 / 27
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow