Machine Learning · Insper
Gradient Boosting
Abordagem fundamental
Árvores fracas, uma depois da outra, cada uma corrigindo o que as anteriores erraram
O caminho desta parte
- Somar, não tirar a médiaárvores pequenas em sequência removem o viés
- Boosting à mãoajustar os resíduos, somá-los encolhidos
- Resíduo é gradientedescida do gradiente nas previsões
- Frear e parartaxa de aprendizado e parada antecipada
Cada etapa responde a uma pergunta: por que somar árvores em vez de tirar a média? → o que cada nova árvore aprende? → por que o nome gradient boosting? → quantas árvores e que tamanho de passo?
Etapa 1 · por que somar árvores em vez de tirar a média?
Tirar a média ou somar?
| 200 pontos, senoide | MSE de teste |
| um toco | 0,608 |
| floresta de 200 tocos | 0,572 |
| boosting de 200 tocos | 0,280 |
| uma árvore profunda | 0,509 |
| floresta de 200 árvores profundas | 0,369 |
Piso do ruído: 0,25.
A média remove variância, não viés: 200 tocos em média ainda são um degrau. A soma remove viés: tocos ajustados aos erros seguem a curva.
Duas estratégias com o mesmo bloco
Etapa 2 · o que cada nova árvore aprende?
Boosting à mão: seis pontos
| \(x\) | 1 | 2 | 3 | 4 | 5 | 6 |
| \(y\) | 2 | 3 | 4 | 9 | 10 | 14 |
- Comece com uma constante: a média, \(F_0 = 7\).
- Calcule os resíduos \(y - F_0\): −5, −4, −3, 2, 3, 7.
- Ajuste um toco aos resíduos, não a \(y\): o melhor corte é \(x < 3{,}5\), folhas −4 / +4 (SSE 16; o segundo melhor, 37).
- Some-o, encolhido por \(\eta = 0{,}5\): \(F_1 = 5, 5, 5, 9, 9, 9\). Repita.
Três rodadas
MSE de treino: 18,67 → 6,67 → 2,92 → 1,23. A rodada 2 isola o último ponto (resíduo 5); a rodada 3 repete o corte da rodada 1: nada proíbe. O GradientBoostingRegressor dá os mesmos cortes e folhas.
Simulador: veja o resíduo encolher
Preveja. O mesmo laço em 60 pontos. Ponha ν = 1 com 6 tocos, depois ν = 0,15 com 40: qual ajusta melhor e como cada um chega lá?
Etapa 3 · por que o nome gradient boosting?
Por que "gradient": resíduos são um gradiente
\[ L(y, F) = \tfrac{1}{2}(y - F)^2, \qquad -\frac{\partial L}{\partial F} = y - F \]
- O resíduo é o gradiente negativo da perda em relação à previsão.
- Boosting é gradiente descendente sobre as previsões; a árvore transforma o gradiente, conhecido só nos pontos de treino, numa função de \(x\).
F0(x) = a constante que minimiza Σ L(yᵢ, c)
para m = 1 .. M:
rᵢ = −∂L(yᵢ, F)/∂F em F = F_{m−1}(xᵢ) # pseudo-resíduos
ajuste uma pequena árvore h_m a (xᵢ, rᵢ)
F_m(x) = F_{m−1}(x) + η · h_m(x)
Etapa 4 · quantas árvores e que tamanho de passo?
Taxa de aprendizado e número de árvores
- \(\eta = 1\): mínimo depois de 16 árvores (54,8 mil) e sobe até 60,7, enquanto o treino cai a 0,9: sobreajuste somando árvores.
- \(\eta\) menor chega mais longe: 46,9 com \(\eta = 0{,}3\), 45,5 com \(\eta = 0{,}1\) (714 árvores).
A parada antecipada escolhe o número de árvores
- Separa uma fatia do treino (
validation_fraction), mede a perda depois de cada árvore e para depois de n_iter_no_change rodadas sem melhora.
| California housing | árvores mantidas | RMSE de validação |
| \(\eta = 1{,}0\) | 41 | 56,4 |
| \(\eta = 0{,}3\) | 87 | 47,4 |
| \(\eta = 0{,}1\) | 337 | 46,0 |
O número de árvores vira uma saída. Com \(\eta\) grande, as árvores extras depois do mínimo já sobreajustam; dê mais paciência a taxas pequenas.
Resumo
- A média corta variância; a soma corta viés.
- Cada árvore é ajustada aos resíduos e entra encolhida: \(F_m = F_{m-1} + \eta\, h_m\).
- Os resíduos são o gradiente negativo da perda.
- Mais árvores podem piorar; \(\eta\) menor precisa de mais árvores e chega mais longe.
- A parada antecipada escolhe o número de árvores.
| sintoma | o que fazer |
| validação mínima cedo e depois subindo | baixar \(\eta\), ligar a parada antecipada |
| métricas boas demais para ser verdade | procurar uma coluna que conhece o futuro |
Lab fundamental · cerca de 35 min, em duplas
Quem vai assinar? Passos 1 a 5
- Telemarketing de um banco português: 45.211 clientes, 11,7% assinaram um depósito a prazo. Métrica: precisão média (AP).
- Um vazamento à vista; o booster padrão contra a regressão logística; taxa de aprendizado com parada antecipada.
- Notebook no Colab: nada para baixar; XGBoost e LightGBM já instalados.
- Em cada passo, responda o Preveja antes de rodar.
- Simulações: uma floresta de tocos contra um boosting de tocos (passo 4) e mais árvores, sem freio (passo 5).
Ritmo: passos 1 a 3 em 10 min; passo 4 e a primeira simulação em 12 min; passo 5 e a segunda em 13 min.