Machine Learning · Insper
Seleção de Modelos
Abordagem fundamental
Quando um modelo erra, ele erra por quê — e o que fazer em cada caso
O caminho desta parte
- Duas maneiras de errarmuitos ajustes de uma verdade: subajuste e sobreajuste
- Decompor o erroviés² + variância + ruído, medidos
- Diagnosticar com curvascurva de validação, curva de aprendizado, o diagnóstico
- Girar o botãoo botão de complexidade de cada família, depois o lab: diagnosticar e tratar
Cada etapa responde a uma pergunta: de que jeitos um modelo erra? → de onde vem o erro de teste? → viés ou variância, sem conhecer a verdade? → o que mudar para corrigir?
Etapa 1 · De que jeitos um modelo erra?
Um exemplo resolvido, à mão, em \(x = 0{,}25\)
Cinco conjuntos de treino; cada um ajusta um polinômio e prevê em \(x = 0{,}25\), onde a verdade é \(f(0{,}25) = 1\). \(\hat f_i\): a previsão do conjunto \(i\); \(\overline{\hat f} = \tfrac{1}{5}\sum_i \hat f_i\): a média delas.
| conjunto \(i\) | 1 | 2 | 3 | 4 | 5 |
| grau 1 | 0,24 | 0,57 | 0,60 | 0,39 | 0,43 |
| grau 3 | 1,09 | 1,05 | 0,97 | 1,18 | 1,01 |
Preveja. Qual grau acerta em média? As cinco respostas de qual deles se espalham mais?
- Viés \(= \overline{\hat f} - f(0{,}25)\). Grau 1: \(\overline{\hat f} = 0{,}446\), viés \(-0{,}554\), viés² 0,307. Grau 3: \(\overline{\hat f} = 1{,}060\), viés² 0,0036.
- Variância \(= \tfrac{1}{5}\sum_i \big(\hat f_i - \overline{\hat f}\big)^2\). Grau 1: 0,017. Grau 3: 0,0052.
Viés: "na média sobre todas as amostras possíveis, eu acerto?" · Variância: "quanto minha resposta depende da amostra que eu recebi?"
Duas maneiras de errar
Verdade: \(\sin(2\pi x)\). Cada curva é um polinômio ajustado num conjunto de treino diferente de 30 pontos.
Grau 1: todas as retas erram do mesmo jeito. Grau 12: acertam na média, mas cada uma pode estar longe. São as duas falhas: subajuste e sobreajuste.
Etapa 2 · De onde vem o erro de teste?
A decomposição
Num \(x\) fixo: a verdade \(f(x)\); uma observação nova \(y = f(x) + \varepsilon\), ruído \(\varepsilon\) de média 0 e variância \(\sigma^2\); a previsão \(\hat f(x)\), aleatória porque depende do conjunto de treino; \(\mathbb{E}\): a média sobre conjuntos de treino e ruído.
\[ \mathbb{E}\big[(y - \hat f(x))^2\big] = \underbrace{\big(f(x) - \mathbb{E}[\hat f(x)]\big)^2}_{\text{viés}^2} + \underbrace{\mathbb{E}\big[(\hat f(x) - \mathbb{E}[\hat f(x)])^2\big]}_{\text{variância}} + \underbrace{\sigma^2}_{\text{ruído}} \]
- \(y - \hat f = (f - \hat f) + \varepsilon\); o \(\varepsilon\) novo tem média 0 e é independente do conjunto de treino, então o termo cruzado some: \(\mathbb{E}[(y - \hat f)^2] = \mathbb{E}[(f - \hat f)^2] + \sigma^2\).
- Para qualquer \(Z\) aleatório: \(\mathbb{E}[Z^2] = (\mathbb{E}[Z])^2 + \operatorname{Var}(Z)\). Com \(Z = f - \hat f\): viés² + variância.
Viés: a melhor tentativa da família erra em média (uma reta não acompanha um seno). Variância: o preço de dar ouvidos à amostra. Ruído: a parte de \(y\) que não depende de \(x\); aqui \(\sigma^2 = 0{,}3^2 = 0{,}09\) e ninguém fica abaixo disso.
Em \(x = 0{,}25\): grau 1 ≈ 0,307 + 0,017 + 0,09 = 0,414; grau 3 ≈ 0,0036 + 0,0052 + 0,09 = 0,099.
Medido com 500 conjuntos de treino
Preveja. 500 conjuntos de treino de 30 pontos por grau. Em que grau o erro quadrático médio (MSE, do inglês mean squared error) de teste é o menor? E o que acontece com a variância no grau 12?
| grau | viés² | variância | ruído | soma | MSE de teste medido |
| 0 | 0,495 | 0,020 | 0,09 | 0,605 | 0,603 |
| 1 | 0,204 | 0,022 | 0,09 | 0,316 | 0,314 |
| 3 | 0,005 | 0,018 | 0,09 | 0,113 | 0,112 |
| 5 | 0,000 | 0,045 | 0,09 | 0,135 | 0,135 |
| 7 | 0,001 | 0,635 | 0,09 | 0,726 | 0,723 |
| 12 | 0,001 | 38,897 | 0,09 | 38,987 | 38,985 |
- As colunas fecham por construção (a decomposição é uma identidade): a soma bate com o erro medido em dados novos, a menos do ruído novo (diferença ≤ 0,004).
- O viés cai até zero; a variância sobe devagar e depois com violência. O fundo do U: grau 3. As variâncias grandes são ordens de grandeza: um punhado das 500 amostras produz a maior parte delas.
Três famílias, o mesmo U
- O k-vizinhos mais próximos (k-NN, do inglês k-Nearest Neighbors) com \(k = 30\) (todos os pontos) é o polinômio de grau 0; no k-NN, \(k\) pequeno é o modelo complexo.
- O 1-NN copia um rótulo ruidoso: variância ≈ \(\sigma^2\) (a variância do ruído, 0,09), erro de teste ≈ \(2\sigma^2\) (medido: 0,195).
Simulador: subajuste ↔ sobreajuste, ao vivo
Preveja. Deslize o grau de 0 (puro viés) a 12 (pura variância). Qual erro só cai e qual volta a subir?
Etapa 3 · Viés ou variância, sem conhecer a verdade?
Curva de validação: o U sem conhecer a verdade
- Treino só desce: 0,267 → 0,046. Escolher por ele dá sempre o mais complexo.
- À esquerda: os dois altos e próximos — viés.
- À direita: treino cai, validação sobe até 1,748 — variância.
- Fundo no grau 3 (0,114): o mesmo da simulação com 500 amostras.
Uma curva de validação varia a complexidade com os dados fixos.
Curva de aprendizado: mais dados valem a pena?
Preveja. Cada vez mais pontos de treino: o erro do grau 1 continua caindo? E o do grau 9?
- Mediana de 300 conjuntos de treino por tamanho.
- Grau 1: treino e teste se encontram perto de 0,29 e ficam lá. Mais dados não ajudam.
- Grau 9: erro de teste 5,6 com 12 pontos, no piso de ruído por volta de 200. Com os coeficientes fixos, os dados fecham a distância.
Uma curva de aprendizado varia os dados com o modelo fixo. "Complexo demais" é relativo à quantidade de dados.
Etapa 4 · O que mudar para corrigir?
Toda família tem um botão
Preveja. Para deixar cada modelo mais complexo, para que lado você gira degree, alpha, C, n_neighbors, max_depth e min_samples_leaf?
Os que giram "ao contrário" confundem: alpha, k e min_samples_leaf maiores deixam o modelo mais simples.
Resumo
- Erro de teste = viés² + variância + ruído. O ruído é um piso.
- Viés: treino ≈ validação, ambos altos. Variância: treino ≪ validação.
- Curva de validação varia a complexidade; curva de aprendizado varia os dados.
- Num modelo de capacidade fixa, mais dados curam a variância e não o viés; mais capacidade só cura viés.
- Todo modelo tem um botão de complexidade e alguns giram ao contrário.
| sintoma | diagnóstico | o que fazer |
| treino ≈ validação, ambos altos | viés | mais capacidade, atributos melhores |
| treino ≪ validação, distância fechando | variância | mais dados, mais regularização |
Lab fundamental · cerca de 40 min, em duplas
Preços de casas: diagnosticar e tratar, passos 1 a 6
- California housing: 20.640 distritos, 9 atributos, alvo = valor mediano das casas.
- Três famílias (linear, k-NN, árvore): qual sofre de viés e qual de variância? Mais dados ajudariam? Qual botão girar?
- Notebook no Colab: nada para baixar. Salve uma cópia no seu Drive.
- Em cada passo, responda o Preveja antes de rodar.
- Simulações: a variância, vista de perto (passo 3) e o alpha como botão contínuo (passo 6).
Ritmo: passos 1 a 3 e a primeira simulação em 15 min; passos 4 a 6 e a segunda em 25 min.