Boosting, Gradient Boosting e XGBoost

Prof. Letícia Raposo

ENSEMBLES Relembrando: a força do coletivo

  • Um ensemble (comitê) combina vários modelos para obter uma predição melhor do que a de qualquer um deles isoladamente.
  • Já vimos o bagging (e o Random Forest): muitas árvores treinadas em paralelo, cada uma em uma amostra bootstrap, e combinadas por média ou voto.
  • Hoje veremos a outra grande família: o boosting — modelos treinados em sequência, cada um tentando corrigir os erros do anterior.

Analogia: no bagging, vários alunos fazem a prova sozinhos e a turma vota na resposta. No boosting, um aluno faz a prova, o próximo estuda só as questões que ele errou, e assim por diante.

ENSEMBLES Paralelo × sequencial

Boosting: em sequência

erros

erros

Dados

Árvore 1

Árvore 2

Árvore 3

Soma
ponderada

Bagging: em paralelo

Dados

Árvore 1

Árvore 2

Árvore 3

Média
ou voto

BOOSTING O que é boosting?

  • Técnica para combinar múltiplos modelos base fracos a fim de obter um modelo final forte.
  • Em cada iteração, o algoritmo dá mais importância às observações preditas incorretamente na iteração anterior.
  • O processo se repete até atingir o número máximo de modelos ou uma acurácia desejada.
  • Objetivo: aumentar a complexidade de modelos que sofrem de alto viés (underfitting) → o boosting reduz o viés.

Modelo fraco (weak learner): aquele cuja taxa de erro é apenas um pouco melhor que um chute aleatório — por exemplo, uma árvore com uma única divisão (um stump).

BOOSTING Aprendizado sequencial dos preditores

repete

① O 1º modelo usa
todos os dados

② Os seguintes olham
o desempenho
dos anteriores

③ Exemplos errados
ganham peso

BOOSTING O esquema geral

w₁

Modelo 1

w₂

Modelo 2

…

Modelo m

Voto ponderado
ou média

  • \(w_t\): pesos das observações na rodada \(t\) — quem foi mal predito ganha peso (e aparece mais na amostra do próximo modelo).
  • O resultado final é uma combinação ponderada: modelos melhores têm mais voz.

VIÉS × VARIÂNCIA O trade-off viés-variância

  • Alto viés, baixa variância: modelos muito simples, que subestimam a complexidade dos dados (underfitting).
  • Baixo viés, alta variância: modelos que se ajustam bem ao treino, mas generalizam mal (overfitting).
  • O desafio é o equilíbrio.

Bagging parte de árvores profundas (alta variância) e reduz a variância. Boosting parte de árvores rasas (alto viés) e reduz o viés.

ADABOOST AdaBoost (Adaptive Boosting)

  • Um dos algoritmos de boosting mais bem-sucedidos — Freund e Schapire (1997).
  • Treina uma série de modelos (em geral, stumps) sequencialmente.
  • Em cada iteração, a distribuição de pesos das observações é atualizada para indicar a importância de cada exemplo.
  • Cada modelo recebe um peso de voto: quanto menos ele erra, mais forte é o seu voto.

próxima rodada

Todos com
o mesmo peso

Treinar um
stump

Medir o
erro

Definir o
peso do voto

Aumentar o peso
de quem errou

ADABOOST O AdaBoost passo a passo

  1. Começo: todas as observações têm o mesmo peso (com 10 pontos, cada uma vale 1/10).
  2. Treinar um modelo bem simples (um stump: uma única pergunta).
  3. Medir o erro do modelo: a soma dos pesos das observações que ele errou.
  4. Dar um voto ao modelo: erro pequeno → voto forte; erro perto de 50% (um chute) → voto quase nulo.
  5. Repesar as observações: quem foi errado ganha peso, quem foi acertado perde peso.
  6. Repetir os passos 2 a 5 com os novos pesos.

Resposta final: cada modelo vota \(+1\) ou \(-1\), multiplicamos pelo seu peso de voto e somamos. Se a soma for positiva, a classe é \(+1\); se for negativa, \(-1\).

ADABOOST Quanto vale o voto de cada modelo?

O peso do voto é

\[\alpha = \frac{1}{2}\ln\frac{1 - \text{erro}}{\text{erro}}\]

Não precisamos decorar a fórmula — basta ler o gráfico:

  • Erra pouco → voto grande.
  • Erra metade → voto zero: o modelo não ajuda.

ADABOOST Exemplo: três rodadas

  • A cada rodada, os exemplos errados crescem e o próximo stump é “forçado” a acertá-los.
  • O erro cai (0,30 → 0,21 → 0,14) e o peso do voto sobe (0,42 → 0,65 → 0,92).

ADABOOST Combinando os modelos simples

\[\text{Resposta final} = \text{sinal}\big(0{,}42 \times \text{voto}_1 + 0{,}65 \times \text{voto}_2 + 0{,}92 \times \text{voto}_3\big)\]

Se a soma for > 0, predizemos +1 (azul); se for < 0, predizemos −1 (amarelo).

ENSEMBLES Diferenças entre bagging e boosting

Bagging Boosting
Amostragem todo elemento tem a mesma probabilidade de entrar na amostra observações ponderadas: as difíceis aparecem mais
Treinamento paralelo: cada modelo é independente sequencial: cada modelo depende do anterior
Combinação média ou voto majoritário média ponderada (pesos por desempenho)
Estratégia treina e mantém treina e avalia
Modelo base árvores profundas (baixo viés) árvores rasas (baixa variância)
Ataca a variância o viés
Mais árvores… nunca piora o teste pode levar a overfitting

GRADIENT BOOSTING Gradient Boosting

  • Executa tarefas de regressão e de classificação.
  • Constrói os modelos em sequência.
  • Começa com um modelo fraco (p. ex., uma árvore com poucas divisões).
  • Cada nova árvore tenta “consertar” onde o conjunto anterior cometeu os maiores erros.

Diferença para o AdaBoost: em vez de repesar as observações, cada nova árvore é ajustada diretamente aos resíduos (erros) do modelo atual.

GRADIENT BOOSTING Componentes

Modelo base
árvores rasas
(1 a 6 divisões)

Treino sequencial
cada árvore usa os
resíduos das anteriores

Foco nos erros
cada árvore se concentra
no que ainda falta

  • Os modelos de gradient boosting (GBMs) constroem um conjunto de árvores “rasas”, cada uma aprendendo e melhorando em relação à anterior.
  • Árvores rasas são fracas, mas podem ser “impulsionadas” (boosted) para formar um comitê poderoso.
  • Funciona melhor com modelos de alto viés e baixa variância — e, na prática, quase sempre com árvores de decisão.

GRADIENT BOOSTING A ideia central: ajustar os resíduos

  1. Treine uma árvore simples nos dados.
  2. Veja o que ela errou (os resíduos = valor real − valor previsto).
  3. Treine a próxima árvore para prever esses erros.
  4. Some a nova árvore ao modelo: ela corrige parte do erro.
  5. Repita até que novas árvores não ajudem mais (ou até a validação cruzada mandar parar).

+ árvore dos erros
+ árvore dos erros

Árvore 1

Modelo 2

Modelo 3

…

Modelo final

Predição final = árvore 1 + árvore 2 + árvore 3 + … — cada árvore é uma pequena correção da soma anterior.

GRADIENT BOOSTING O ajuste melhorando a cada iteração

Com poucas árvores, o ajuste é quase plano; cada árvore nova refina o que ainda faltava até capturar os degraus da relação real.

GRADIENTE DESCENDENTE Por que “gradient”?

O nome vem do fato de o algoritmo usar o gradiente descendente.

Imagine que você está em uma montanha e quer chegar ao ponto mais baixo (o mínimo de uma função de custo). Você está de olhos vendados: não vê a paisagem, mas sente a inclinação do terreno sob os pés. Seu objetivo é descer o mais rápido possível.

GRADIENTE DESCENDENTE Os quatro passos da descida

não

sim

① Início
aleatório

② Medir a
inclinação
(gradiente)

③ Dar um passo
contra o gradiente
(× taxa)

④ Gradiente
≈ 0?

Mínimo

GRADIENTE DESCENDENTE A taxa de aprendizado

  • Muito pequena: o algoritmo leva muitas iterações para chegar ao mínimo.
  • Muito grande: os passos pulam o mínimo — e podem até terminar mais longe do que começaram.

GRADIENTE DESCENDENTE Em resumo

  • Algoritmo genérico de otimização: encontra boas soluções para diversos problemas.
  • Iterativo: ajusta os parâmetros para minimizar uma função de custo.
  • Mede o gradiente local da função de custo e dá passos na direção oposta a ele.
  • Funciona para qualquer função de custo em que se possa medir a inclinação.
  • O tamanho do passo é um parâmetro crucial: a taxa de aprendizado.

Posição nova = posição atual − taxa de aprendizado × inclinação

GRADIENTE DESCENDENTE Gradiente descendente estocástico

Uma função convexa “curva para cima” em toda a extensão: tem um único mínimo. Funções não convexas têm mínimos locais, platôs e pontos de sela.

  • O GD estocástico usa, a cada passo, uma fração aleatória das observações (em geral, sem reposição).
  • Fica mais rápido, e a aleatoriedade torna a descida “ruidosa”.
  • Esse ruído não garante o mínimo global, mas ajuda a escapar de mínimos locais e platôs e chegar suficientemente perto do ótimo.

No gradient boosting, isso significa treinar cada árvore em uma subamostra dos dados — veremos isso como GBM estocástico.

EXEMPLO: REGRESSÃO Prevendo o peso de uma pessoa

Altura (m) Cor favorita Gênero Peso (kg)
1,6 Azul M 88
1,6 Verde F 76
1,5 Azul F 56
1,8 Vermelho M 73
1,5 Verde M 77
1,4 Azul F 57

Passo 1. Calculamos a média da variável resposta no treino:

\[F_0 = \bar{y} = 71{,}2\]

Média
71,2

É a nossa primeira árvore: uma única folha, que prediz 71,2 kg para todo mundo.

EXEMPLO: REGRESSÃO Passo 2: os resíduos viram a nova resposta

Altura (m) Cor favorita Gênero Peso (kg) Pseudo-resíduo
1,6 Azul M 88 88 − 71,2 = 16,8
1,6 Verde F 76 76 − 71,2 = 4,8
1,5 Azul F 56 56 − 71,2 = -15,2
1,8 Vermelho M 73 73 − 71,2 = 1,8
1,5 Verde M 77 77 − 71,2 = 5,8
1,4 Azul F 57 57 − 71,2 = -14,2

Construímos uma árvore baseada nos erros da primeira:

\[\text{resíduo} = \text{observado} - \text{predito}\]

A coluna pseudo-resíduo passa a ser a variável resposta da próxima árvore.

EXEMPLO: REGRESSÃO Passo 3: uma árvore para os resíduos

Altura (m) Cor favorita Gênero Pseudo-resíduo
1,6 Azul M 88 − 71,2 = 16,8
1,6 Verde F 76 − 71,2 = 4,8
1,5 Azul F 56 − 71,2 = -15,2
1,8 Vermelho M 73 − 71,2 = 1,8
1,5 Verde M 77 − 71,2 = 5,8
1,4 Azul F 57 − 71,2 = -14,2

Usamos altura, cor e gênero para prever o resíduo. Aqui limitamos a árvore a 4 folhas.

sim

não

sim

não

sim

não

Gênero = F?

Altura < 1,6?

Cor ≠ azul?

−15,2 e −14,2
média −14,7

4,8

1,8 e 5,8
média 3,8

16,8

Cada folha prevê a média dos resíduos que caem nela.

EXEMPLO: REGRESSÃO Somando as duas árvores

+ árvore dos resíduos

Média 71,2

Predição

Altura (m) Cor favorita Gênero Peso (kg) Predição
1,6 Azul M 88 71,2 + 16,8 = 88,0
1,6 Verde F 76 71,2 + 4,8 = 76,0
1,5 Azul F 56 71,2 − 14,7 = 56,5
1,8 Vermelho M 73 71,2 + 3,8 = 75,0
1,5 Verde M 77 71,2 + 3,8 = 75,0
1,4 Azul F 57 71,2 − 14,7 = 56,5

O valor predito ficou quase igual ao real: viés muito baixo — mas, provavelmente, alta variância!

EXEMPLO: REGRESSÃO A taxa de aprendizado entra em cena

Gênero Peso (kg) Predição (ν = 0,1) Novo resíduo
M 88 71,2 + 0,1 × 16,8 = 72,85 15,1
F 76 71,2 + 0,1 × 4,8 = 71,65 4,3
F 56 71,2 − 0,1 × 14,7 = 69,70 -13,7
M 73 71,2 + 0,1 × 3,8 = 71,55 1,4
M 77 71,2 + 0,1 × 3,8 = 71,55 5,4
F 57 71,2 − 0,1 × 14,7 = 69,70 -12,7

Multiplicamos a nova árvore por uma taxa de aprendizado \(\nu = 0{,}1\):

\[\text{predição} = \text{média} + 0{,}1 \times \text{árvore}\]

  • A predição não é tão boa quanto antes, mas é melhor que a média.
  • Damos passos pequenos na direção correta → menor variância no teste.

EXEMPLO: REGRESSÃO E o processo continua…

71,2

+
+
+

Predição

ν × árvore 1

ν × árvore 2

ν × árvore 3

  • A partir dos novos resíduos, constrói-se uma nova árvore, também multiplicada pela taxa (0,1).
  • A predição é o somatório de todas as parcelas.
  • A predição melhora em passos curtos, e os resíduos diminuem a cada etapa.
  • Repete-se até atingir o número máximo de árvores ou até que novas árvores não reduzam significativamente os resíduos.

GRADIENT BOOSTING O algoritmo em palavras

repetir

Começar com
a média

Calcular os
resíduos

Treinar uma
árvore nos
resíduos

Somar a árvore
× taxa

Modelo
final

E onde entra o “gradiente”? Voltando à montanha: o resíduo diz para que lado e quanto a predição precisa se mover para diminuir o erro — é a “inclinação do terreno”. Cada nova árvore é um passo morro abaixo, e a taxa de aprendizado é o tamanho desse passo.

  • Por isso o método é tão flexível: trocando a forma de medir o erro, a mesma receita serve para regressão e classificação.

EXEMPLO: CLASSIFICAÇÃO Quem gosta de filmes de animação?

Gosta de pipoca Idade Cor favorita Gosta de animação
Sim 12 Azul Sim (1)
Sim 87 Verde Sim (1)
Não 44 Azul Não (0)
Sim 19 Vermelho Não (0)
Não 32 Verde Sim (1)
Não 14 Azul Sim (1)

Passo 1. Ponto de partida: 4 de 6 pessoas gostam de animação, então a probabilidade inicial é

\[p = \frac{4}{6} = 0{,}67\]

Por conveniência, o algoritmo faz as contas na escala do log das chances: \(\log(4/2) = 0{,}69\). Pense nela apenas como outra forma de escrever a mesma probabilidade — sempre convertemos de volta no final.

EXEMPLO: CLASSIFICAÇÃO Passo 2: resíduos e uma árvore

Idade Cor favorita Gosta de animação Pseudo-resíduo
12 Azul Sim (1) 1 − 0,67 = 0,33
87 Verde Sim (1) 1 − 0,67 = 0,33
44 Azul Não (0) 0 − 0,67 = -0,67
19 Vermelho Não (0) 0 − 0,67 = -0,67
32 Verde Sim (1) 1 − 0,67 = 0,33
14 Azul Sim (1) 1 − 0,67 = 0,33

Com corte em 0,5, todos seriam classificados como Sim. O resíduo é observado − probabilidade predita.

sim

não

sim

não

Cor = vermelho?

−0,67

Idade > 37?

0,33 e −0,67

0,33 · 0,33 · 0,33

Árvore limitada a 3 folhas (na prática, de 8 a 32).

EXEMPLO: CLASSIFICAÇÃO O valor de cada folha

Na regressão, cada folha previa a média dos resíduos. Aqui há uma pequena correção, porque as contas estão em log-chances. A fórmula é:

\[\text{valor da folha} = \frac{\text{soma dos resíduos da folha}}{\text{soma de } p \times (1 - p) \text{ da folha}}\]

Para a folha Idade ≤ 37 (três resíduos de 0,33, todos com \(p = 0{,}67\)):

\[\frac{0{,}33 + 0{,}33 + 0{,}33}{3 \times (0{,}67 \times 0{,}33)} = 1{,}50\]

Do mesmo jeito: folha Vermelho → -3,00; folha Idade > 37 → -0,75.

EXEMPLO: CLASSIFICAÇÃO Atualizando as predições

Nova predição = ponto de partida + taxa × valor da folha

Para a 1ª pessoa (azul, 12 anos → folha de valor 1,50):

\[0{,}69 + 0{,}8 \times 1{,}50 = 1{,}89\]

Convertendo de volta para probabilidade: p = 0,87.

Usamos taxa 0,8 para o exemplo andar rápido; na prática, é mais comum 0,1.

Idade Cor favorita Gosta de animação Prob. predita Novo resíduo
12 Azul Sim (1) 0,87 0,13
87 Verde Sim (1) 0,52 0,48
44 Azul Não (0) 0,52 -0,52
19 Vermelho Não (0) 0,15 -0,15
32 Verde Sim (1) 0,87 0,13
14 Azul Sim (1) 0,87 0,13

Todos os resíduos ficaram menores em módulo.

EXEMPLO: CLASSIFICAÇÃO A segunda árvore

sim

não

sim

não

Idade ≥ 66?

1,91

Idade > 37?

−2,10

0,51

Com os novos resíduos, construímos outra árvore, com a mesma fórmula para as folhas.

O modelo passa a ser:

ponto de partida + 0,8 × árvore 1 + 0,8 × árvore 2

O processo se repete até o número máximo de árvores ou até os resíduos ficarem muito pequenos.

EXEMPLO: CLASSIFICAÇÃO Classificando uma pessoa nova

Nova pessoa: gosta de pipoca = Sim, idade = 25, cor favorita = Verde. Ela gosta de animação?

+ 0,8 × 1,50
(árvore 1)
+ 0,8 × 0,51
(árvore 2)

logística

F₀
0,69

1,89

log-chances
2,30

p = 0,91
SIM!

\[0{,}69 + (0{,}8 \times 1{,}50) + (0{,}8 \times 0{,}51) = 2{,}30 \;\;\longrightarrow\;\; p = 0{,}91\]

Probabilidade de 91% → a pessoa gosta de animação.

HIPERPARÂMETROS Os hiperparâmetros de um GBM

GBM

Do boosting

Da árvore

Número de árvores

Taxa de aprendizado

Profundidade da árvore

Mín. de observações
nas folhas

HIPERPARÂMETROS Hiperparâmetros do boosting

  • Número de árvores: os GBMs geralmente precisam de muitas árvores, mas podem sofrer overfitting — o número ideal é encontrado por validação cruzada.
  • Taxa de aprendizado (learning rate, shrinkage): determina a contribuição de cada árvore e a rapidez da descida do gradiente. Varia de 0 a 1, tipicamente entre 0,001 e 0,3. Menor → em geral mais preciso, porém exige mais árvores.

HIPERPARÂMETROS Hiperparâmetros da árvore

  • Profundidade da árvore: valores típicos entre 3 e 8.
    • Árvores rasas são computacionalmente eficientes, mas exigem mais árvores.
    • Árvores profundas capturam interações entre variáveis, mas aumentam o risco de overfitting.
    • Bases com muitas observações ou preditores toleram árvores mais profundas.
  • Número mínimo de observações nas folhas: valores típicos entre 5 e 15.
    • Valores altos ajudam a evitar overfitting.
    • Valores baixos podem ajudar com classes desbalanceadas.

GBM ESTOCÁSTICO Subamostragem: a ideia de Breiman e Friedman

  • Breiman: no bagging/Random Forest, treinar em subamostras aleatórias reduz a correlação entre árvores.
  • Friedman (2002) levou a ideia ao boosting: o gradient boosting estocástico, que ajuda a não ficar preso em mínimos locais e platôs.

Subamostragem estocástica

① Linhas antes
de cada árvore

② Colunas
por árvore

③ Colunas
por divisão

  • Linhas: valores típicos entre 0,5 e 0,8. Colunas: úteis com multicolinearidade ou muitos preditores ruidosos.

OVERFITTING Uma diferença crucial em relação ao Random Forest

Random Forest: adicionar mais árvores nunca piora o erro de teste — só estabiliza a média.

Gradient Boosting: adicionar mais árvores pode piorar o erro de teste — cada árvore passa a ajustar o ruído do treino.

Early stopping: monitorar o erro de validação a cada iteração e parar quando ele deixa de melhorar por um certo número de rodadas.

XGBoost

XGBOOST O que é o XGBoost?

  • eXtreme Gradient Boosting — Chen e Guestrin (2016).
  • É gradient boosting de árvores, com três ideias a mais:

Gradient Boosting

XGBoost

Regularização
penaliza árvores
complexas

Passos mais
precisos

usa a curvatura

Engenharia
rápido, paralelo,
lida com NA

  • Por anos, foi o algoritmo vencedor da maioria das competições com dados tabulares (Kaggle) e segue muito usado na indústria.

XGBOOST Ideia 1: penalizar árvores complexas

O XGBoost procura árvores que errem pouco e que sejam simples:

Custo total = erro do modelo + penalidade pela complexidade das árvores

A penalidade é controlada por dois “botões”:

  • γ (gamma): um preço por folha. Uma divisão só vale a pena se melhorar o modelo mais do que custa. Divisões fracas são podadas.
  • λ (lambda): um freio nos valores das folhas. Impede que uma folha faça uma correção exagerada com base em poucas observações (como a regressão ridge).

O GBM tradicional controla a complexidade por fora (profundidade, taxa, número mínimo de observações); o XGBoost coloca essa preocupação dentro do próprio critério que está otimizando.

XGBOOST Ideia 2: passos mais precisos

De volta à montanha de olhos vendados:

  • O gradient boosting sente apenas a inclinação do terreno e dá um passo nessa direção.
  • O XGBoost sente também a curvatura: se o terreno está ficando plano, sabe que está perto do fundo e dá um passo menor; se ainda está íngreme, dá um passo maior.

Resultado: cada árvore faz uma correção do tamanho certo, e o modelo precisa de menos árvores para chegar a um bom resultado.

XGBOOST Como o XGBoost escolhe as divisões?

Lembre: cada árvore do boosting tenta prever os resíduos (os erros que ainda faltam corrigir). Cada folha dá um único valor de correção para todas as observações que caem nela.

Pergunta-chave: uma folha consegue corrigir bem os seus resíduos com um único número?

  • Se os resíduos da folha apontam para o mesmo lado (todos positivos ou todos negativos) → sim! Um único valor corrige todos.
  • Se os resíduos apontam para lados opostos → não: o que ajuda uns atrapalha os outros.

A similaridade é uma nota que mede exatamente isso: quão “parecidos” (do mesmo lado) são os resíduos de um grupo.

XGBOOST Similaridade: a intuição

  • A e C: resíduos do mesmo lado → uma única correção serve para todos → nota alta.
  • B: os resíduos se cancelam (soma zero) → nenhuma correção única ajuda → nota zero.

XGBOOST Similaridade: a conta em 3 passos

\[\text{Similaridade} = \frac{(\text{soma dos resíduos})^2}{\text{nº de resíduos} + \lambda}\]

  1. Some os resíduos do grupo.
    Se eles se cancelam, a soma fica perto de zero.
  2. Eleve ao quadrado.
    Positivo ou negativo tanto faz: os grupos A e C são igualmente bons.
  3. Divida pelo número de resíduos (+ λ).
    Por enquanto, considere λ = 0.
Grupo Resíduos ① Soma ② Ao quadrado ③ ÷ 3
A 5, 6, 4 15 225 75
B 5, −6, 1 0 0 0
C −5, −6, −4 −15 225 75

Quanto maior a nota, mais útil é ter esse grupo como uma folha.

XGBOOST Ganho: a divisão valeu a pena?

Uma boa divisão separa os resíduos positivos dos negativos, criando grupos mais “parecidos” do que o grupo original.

Ganho = similaridade da esquerda + similaridade da direita − similaridade antes de dividir

  • Ganho alto → a divisão organizou bem os resíduos.
  • Ganho baixo → a divisão quase não ajudou.

sim

não

Calcular a
similaridade
de cada nó

Ganho de
cada divisão
candidata

Escolher a de
maior ganho

Ganho menor
que γ?

Podar
o ramo

Manter

O XGBoost testa várias divisões candidatas, fica com a de maior ganho e, no final, poda os ramos cujo ganho não supera o “preço” γ.

XGBOOST Exemplo: o peso de novo

Os resíduos iniciais (peso − média 71,2) e a divisão candidata Gênero = F?:

F

M

Antes: −15,2 · −14,2 · 4,8
1,8 · 5,8 · 16,8

−15,2 · −14,2 · 4,8
soma = −24,5

1,8 · 5,8 · 16,8
soma = 24,5

Antes de dividir: a soma dos 6 resíduos é 0 (sempre é, em torno da média)

\[\text{Sim} = \frac{0^2}{6} = 0\]

Mulheres (F): \(\dfrac{(-24{,}5)^2}{3} = \dfrac{600{,}25}{3} = 200{,}1\)

Homens (M): \(\dfrac{(24{,}5)^2}{3} = \dfrac{600{,}25}{3} = 200{,}1\)

Ganho = 200,1 + 200,1 − 0 = 400,2

XGBOOST Comparando divisões candidatas

  • Gênero separa quase perfeitamente os resíduos negativos (mulheres mais leves) dos positivos → maior ganho → é a escolhida.
  • Cor = azul mistura positivos e negativos nos dois lados → ganho pequeno.

XGBOOST E o λ? Um freio

O λ entra somando no denominador: é como se cada folha tivesse “observações a mais”, o que deixa tudo mais conservador.

λ = 0 λ = 1
Similaridade das mulheres 600,25 ÷ 3 = 200,1 600,25 ÷ (3 + 1) = 150,1
Similaridade dos homens 200,1 150,1
Ganho 400,2 300,1
Valor da folha das mulheres (soma ÷ (nº + λ)) −24,5 ÷ 3 = -8,17 −24,5 ÷ (3 + 1) = -6,13
  • Com λ = 0, o valor da folha é simplesmente a média dos resíduos.
  • Com λ maior, o ganho cai (divisões precisam ser mais convincentes) e a correção fica menor (menos risco de overfitting).
  • O efeito é maior em folhas com poucas observações: dividir por 1 + 1 muda muito mais do que dividir por 100 + 1.

XGBOOST O efeito de λ e γ

  • λ maior → ganhos menores e folhas mais conservadoras.
  • γ é o ganho mínimo para manter uma divisão: com γ = 250, a divisão por gênero sobrevive para λ pequeno, mas é podada quando λ passa de 1,9.

XGBOOST Ideia 3: engenharia para ser rápido

XGBoost

Valores ausentes
aprende a melhor
direção padrão

Divisões aproximadas
testa quantis/histogramas
em vez de todo valor

Paralelismo
busca de divisões
em vários núcleos

Subamostragem
de linhas e colunas

  • As árvores continuam sendo construídas em sequência; o paralelismo está dentro da construção de cada árvore.
  • Valores ausentes: em cada divisão, testa mandar os NA para a esquerda e para a direita e guarda a melhor opção.

XGBOOST Principais hiperparâmetros

Hiperparâmetro (xgboost) O que controla Valores típicos
eta taxa de aprendizado 0,01–0,3
nrounds + early_stopping_rounds número de árvores e parada antecipada até milhares
max_depth profundidade de cada árvore 3–10
min_child_weight “tamanho” mínimo de uma folha (≈ nº mínimo de observações) 1–20
gamma ganho mínimo para dividir (γ) 0–5
lambda / alpha freio nos valores das folhas 0–10
subsample fração de linhas por árvore 0,5–0,9
colsample_bytree fração de colunas por árvore 0,5–0,9

Mesma estratégia de antes: fixar eta, achar nrounds com early stopping, ajustar a árvore, depois a regularização e a subamostragem, e por fim diminuir eta.

XGBOOST GBM tradicional × XGBoost

Gradient Boosting (GBM) XGBoost
Tamanho do passo usa a inclinação usa inclinação e curvatura
Controle da complexidade indireto: taxa, profundidade, mín. obs. dentro do critério: γ e λ
Critério de divisão redução do erro dos resíduos ganho de similaridade
Poda parada antecipada cresce e depois poda por γ
Valores ausentes depende da implementação tratamento nativo
Velocidade moderada alta (paralelismo, histogramas)

Outras implementações modernas na mesma linha: LightGBM (Microsoft, crescimento por folha, muito rápido) e CatBoost (Yandex, ótimo com variáveis categóricas).

COMPARAÇÃO A fronteira de decisão do gradient boosting

USO PRÁTICO Vantagens e limitações

Vantagens

  • Costuma ter excelente desempenho, sobretudo em dados tabulares.
  • Muito flexível: qualquer função de perda diferenciável.
  • Serve para regressão e classificação.
  • Controle fino do trade-off viés-variância (taxa, profundidade, subamostragem, regularização).
  • Implementações modernas (XGBoost, LightGBM, CatBoost) são rápidas e lidam com valores ausentes.

Limitações

  • Muitos hiperparâmetros → exige mais cuidado e tempo de validação.
  • Sensível a overfitting se o número de árvores ou a taxa não forem bem ajustados.
  • Treino sequencial: menos paralelizável que o Random Forest.
  • Menos interpretável do que uma árvore isolada.
  • Sensível a ruído nos rótulos (o AdaBoost, especialmente, dá peso enorme aos erros).

SÍNTESE A família boosting

Boosting
modelos em sequência

AdaBoost
repesa as
observações erradas

Gradient Boosting
árvores ajustadas
aos pseudo-resíduos

XGBoost
passos precisos +
regularização

LightGBM / CatBoost
variações
modernas

Resumo

  • Bagging treina modelos em paralelo e reduz a variância; boosting treina em sequência e reduz o viés.
  • AdaBoost: aumenta o peso das observações erradas e dá mais voto aos modelos com menor erro.
  • Gradient boosting: cada árvore aprende os erros (resíduos) das anteriores — passos morro abaixo na direção de um erro menor.
  • A taxa de aprendizado, a subamostragem e o early stopping são essenciais: mais árvores podem piorar o teste.
  • XGBoost: passos mais precisos, penalidade para árvores complexas (γ, λ) e engenharia que o torna rápido e robusto.

Referências

  • BOEHMKE, B.; GREENWELL, B. Hands-on Machine Learning with R. Chapman and Hall/CRC, 2019.
  • CHEN, T.; GUESTRIN, C. XGBoost: a scalable tree boosting system. Proceedings of the 22nd ACM SIGKDD, p. 785–794, 2016.
  • FREUND, Y.; SCHAPIRE, R. E. A decision-theoretic generalization of on-line learning and an application to boosting. Journal of Computer and System Sciences, 55(1), p. 119–139, 1997.
  • FRIEDMAN, J. H. Greedy function approximation: a gradient boosting machine. The Annals of Statistics, 29(5), p. 1189–1232, 2001.
  • FRIEDMAN, J. H. Stochastic gradient boosting. Computational Statistics & Data Analysis, 38(4), p. 367–378, 2002.
  • HASTIE, T.; TIBSHIRANI, R.; FRIEDMAN, J. The Elements of Statistical Learning. 2. ed. Springer, 2009.
  • STARMER, J. StatQuest: Gradient Boost e XGBoost (séries de vídeos), 2019–2020.