Seleção de Modelo, Validação Cruzada e Bootstrap

Aula 4 — Fundamentos Estatísticos do Aprendizado Supervisionado

Marcos M. Raimundo — Instituto de Computação, UNICAMP

2026-08-30

Proposta da Aula

Revisão

A Aula 3 podou uma árvore “olhando o gráfico”. Como fazer isso de forma sistemática?

Hoje muda o objeto de estudo: não um modelo, mas o procedimento de escolher entre modelos.

Pela primeira vez no curso: dado real — Breast Cancer Wisconsin, 569 pacientes.

Roteiro: erro de treino → validação cruzada → escolha de \(k\) → Bootstrap.

O Erro de Treino é uma Estimativa Otimista

O Treino Sempre Melhora — o Teste, Não

Treino: 100% a partir da profundidade 6. Teste: pico em 93,0% na profundidade 5, depois estagna.

Por Que o Erro de Treino Engana

O que calculamos: Erro de Treino (Risco Empírico) \[ \hat{R}(\theta) = \frac{1}{N}\sum_{i=1}^{N} \mathcal{L}(y_i, f_\theta(x_i)) \] É a média de erros medida nos mesmos pontos usados para ajustar os parâmetros \(\theta\).

O que realmente queremos: Risco Esperado \[ R(\theta) = \mathbb{E}_{(X,Y)\sim P}[\mathcal{L}(Y,f_\theta(X))] \] É o erro que o modelo cometerá no mundo real, sobre dados novos e nunca vistos da população \(P(X,Y)\).

A Ilusão da Memorização \(\hat{R}(\theta)\) é um estimador enviesado para baixo (otimista) de \(R(\theta)\). Como \(\theta\) foi escolhido especificamente para minimizar \(\hat{R}(\theta)\), o modelo está literalmente com o gabarito da prova antes de fazê-la.

O Split como Simulação do Mundo Real

Separar dados não é apenas jogar uma moeda. O teste representa o processo gerador de dados continuando na vida real.

A regra de ouro: o split deve mimetizar o eixo de generalização desejado.

  • No Tempo (Prever o amanhã):
  • Erro: Sorteio aleatório (vaza correlações do futuro para o treino).
  • Certo: Treinar no passado (ex: 2023-2025), testar no futuro (ex: 2026).
  • No Espaço (Novas localidades):
  • Erro: Misturar dados de uma mesma cidade/fazenda em treino e teste.
  • Certo: Treinar nos locais A e B, testar exclusivamente no local C.
  • Por Indivíduo (Novos pacientes):
  • Erro: Separar por exame (imagens do mesmo paciente caem nos dois lados).
  • Certo: Separar por ID do paciente (avalia se o modelo reconhece a doença, não a pessoa).

Erro de Treino vs. Erro de Generalização

Se a árvore de profundidade 15 tem a mesma acurácia de teste da árvore de profundidade 6, por que ainda preferimos uma árvore mais rasa?

Escreva sua resposta e compare com um colega antes de avançar (2 min).

Dica

Julgue V ou F — a questão só conta se acertar os 4 itens:

  • □ No limite em que o número de folhas permitido é igual ao número de pontos de treino, a acurácia de treino atinge exatamente \(100\%\), mas isso não impede que a acurácia de teste seja pior do que a de uma árvore bem mais rasa.
  • □ Se, por coincidência, um modelo simples (profundidade 1) tivesse a mesma acurácia de TREINO que um modelo complexo (profundidade 15) num dataset específico, isso provaria que os dois generalizam igualmente bem.
  • □ Num modelo de crédito treinado com 10 anos de histórico e testado nos últimos 6 meses, uma acurácia de treino de 99% mas de teste de 70% seria um sinal claro de overfitting, análogo ao padrão desta aula.
  • □ Como aumentar a profundidade eventualmente para de melhorar a acurácia de teste, conclui-se que profundidades menores sempre produzem acurácia de teste maior do que profundidades muito altas.

Erro de Treino vs. Erro de Generalização — Resposta

Dica

  • ✔ É o extremo de memorização total: treino perfeito, sem qualquer garantia sobre o teste.
  • ✗ Acurácia de TREINO igual nada diz sobre generalização; é preciso olhar o desempenho no teste.
  • ✔ Mesma assinatura do overfitting desta aula, num domínio diferente.
  • ✗ No nosso experimento, o teste sobe até a profundidade 5 e depois só estagna, não piora sempre.

O design do split define rigorosamente qual pergunta você está respondendo.

Train/Validation/Test, e o Pecado de Espiar

  • Treino — ajusta os parâmetros do modelo
  • Validação — escolhe hiperparâmetros (pode ser consultada várias vezes)
  • Teste — usado uma única vez, no final

Consultar o teste repetidamente durante o desenvolvimento contamina o que ele deveria significar.

O Pecado de Espiar o Teste

Um colega ajusta hiperparâmetros usando só a validação, mas de vez em quando “espia rapidinho” o teste para decidir se vale a pena continuar tentando profundidades maiores. Ele nunca usou o teste para ajustar nada — o que exatamente ele perdeu ao fazer isso?

Escreva sua resposta e compare com um colega antes de avançar (2 min).

Dica

Julgue V ou F — a questão só conta se acertar os 4 itens:

  • □ Se os dados disponíveis fossem infinitos, seria sempre possível extrair uma nova fatia de teste independente a cada consulta, e o problema de “espiar” repetidamente o teste desapareceria — o custo do vazamento vem da escassez que força reutilizar os mesmos pontos, não de consultar dados de teste em si.
  • □ No limite em que o conjunto de teste reservado tem apenas 1% dos dados (contra 99% de treino), a estimativa final de desempenho ainda seria válida (não contaminada), mas passaria a ter variância muito mais alta, por depender de poucos pontos.
  • □ Num benchmark público usado por centenas de artigos de uma comunidade de pesquisa ao longo dos anos, a tentativa coletiva e repetida de bater o estado da arte nesse mesmo conjunto de teste sofre, de forma agregada, do mesmo problema de “espiar” o teste repetidamente, mesmo que nenhum artigo individual o reuse mais de uma vez.
  • □ Como a validação cruzada resolve o problema de “conjunto de validação caro” reciclando os mesmos dados para treino e validação em rodadas diferentes, conclui-se que ela elimina a necessidade de reservar um conjunto de teste separado ao final do processo.

O Pecado de Espiar o Teste — Resposta

Dica

  • ✔ Com dados infinitos, cada consulta poderia usar uma fatia nova e independente; o vazamento nasce da escassez, não da simples existência de um teste.
  • ✔ Um teste de 1% ainda estima o mesmo risco esperado sem viés, só que com muito mais ruído amostral — o mesmo padrão que o intervalo largo do Bootstrap vai confirmar mais adiante nesta aula.
  • ✔ É o “overfitting ao benchmark” da comunidade: nenhum artigo isolado reusa o teste, mas a busca coletiva e repetida por melhorias nele tem o mesmo efeito agregado.
  • ✗ CV torna a validação mais barata, mas não substitui o papel do teste — reportar o número final ainda exige uma fatia nunca usada nem para treinar, nem para escolher hiperparâmetros.

Validação Cruzada como Simulação de Amostragem

O Argumento Central

“Estima diretamente o erro esperado fora da amostra […] quando o método é aplicado a uma amostra de teste independente, vinda da distribuição conjunta de \(X\) e \(Y\)” (ESL, §7.10).

Cada fold = uma aproximação de “coletar uma nova amostra de teste”.

O Procedimento k-fold

\[ \text{CV}(\hat f) = \frac{1}{N}\sum_{i=1}^{N} \mathcal{L}\bigl(y_i,\, \hat f^{-\kappa(i)}(x_i)\bigr) \]

\(k\) rodadas, cada uma treinando sem um bloco e avaliando nele. A média estima \(\mathbb{E}_{(X,Y)\sim P}[\mathcal{L}]\).

Por Que Estratificar

Proporção de malignos por fold (estratificado):
  fold 1: 0.375  (treino inteiro: 0.372)
  fold 2: 0.375  (treino inteiro: 0.372)
  fold 3: 0.375  (treino inteiro: 0.372)
  fold 4: 0.367  (treino inteiro: 0.372)
  fold 5: 0.367  (treino inteiro: 0.372)

Sem estratificação, um fold pequeno pode, por azar, concentrar poucos ou muitos casos malignos.

Validação Cruzada

Por que a média de k avaliações de validação é uma estimativa melhor do erro esperado do que um único split treino/validação?

Escreva sua resposta e compare com um colega antes de avançar (2 min).

Dica

Julgue V ou F — a questão só conta se acertar os 4 itens:

  • □ No limite em que \(k=2\), cada fold de treino usa exatamente metade dos dados disponíveis — a menor fração de dados de treino possível dentro do esquema de k-fold (para \(k\ge2\)).
  • □ Se, em vez de folds disjuntos, k-fold CV permitisse que o mesmo ponto aparecesse na validação de mais de um fold, isso deixaria de simular corretamente uma amostra de teste independente para cada fold.
  • □ Num teste A/B de um site de e-commerce, o princípio da validação cruzada (simular repetidamente uma amostra de teste independente) poderia inspirar repetir o teste em múltiplos períodos de tempo, em vez de confiar num único período.
  • □ Como a validação cruzada usa todos os pontos tanto para treino quanto para validação (em folds diferentes), o valor final de CV independe de qual partição aleatória específica em \(k\) folds foi sorteada.

Validação Cruzada — Resposta

Dica

  • ✔ Com \(k=2\), cada metade dos dados serve de treino uma vez; é o caso mais “econômico” em dados de treino por fold.
  • ✔ Folds disjuntos garantem que cada ponto seja validado exatamente uma vez; sobreposição quebraria essa contabilidade.
  • ✔ Mesma lógica de “não confiar numa única amostra”, transferida para testes A/B.
  • ✗ O valor de CV varia (pouco, mas varia) conforme a partição aleatória escolhida, como veremos a seguir.

Escolhendo k: Viés e Variância do Próprio Estimador

O Efeito de \(k\): Viés vs. Variância

Escolher o número de partições (\(k\)) é equilibrar as propriedades estatísticas do próprio estimador de validação cruzada.

1. O Efeito no Viés (Bias)

  • \(k\) pequeno (ex: \(k=2\)): Cada rodada usa apenas \(50\%\) dos dados para treinar. O modelo ajustado será visivelmente pior do que o modelo final (que usará \(100\%\)). Isso gera uma estimativa pessimista do desempenho real (alto viés).
  • \(k\) grande (ex: \(k=N\)): Treinamos com \(N-1\) amostras. O modelo é quase idêntico ao modelo final. A estimativa reflete o desempenho real (viés quase zero).

2. O Efeito na Variância (Variance)

  • Pode parecer contra-intuitivo, mas \(k\) muito grande aumenta a variância da estimativa.
  • Quando \(k=N\), os conjuntos de treino são quase idênticos (diferem por apenas 1 ponto).
  • Modelos treinados em dados quase iguais geram predições altamente correlacionadas. A teoria estatística demonstra que a média de muitas variáveis altamente correlacionadas não reduz a variância tão bem quanto a média de variáveis independentes.

O Ponto de Equilíbrio: \(k=5\) ou \(10\) garante dados de treino suficientes (baixo viés) e diversidade suficiente entre os folds (variância controlada).

O Caso Extremo: LOOCV (\(k=N\))

O que é o Leave-One-Out Cross-Validation?

É a validação cruzada levada ao limite: particionamos os dados em \(k = N\) partes. Em cada rodada, o modelo treina com \(N-1\) amostras e valida na única amostra deixada de fora.

  • Vantagem (Baixo Viés): Como o treino usa quase todos os dados (99.7% no nosso caso), o modelo avaliado é praticamente idêntico ao modelo treinado com a base inteira.
  • Desvantagem (Alta Variância): Os \(N\) conjuntos de treino são quase idênticos entre si. Além disso, o custo computacional explode (\(N\) treinamentos completos).

k-fold Varia com a Partição; LOOCV Não

Se rodarmos o 5-fold e o 10-fold múltiplas vezes (mudando apenas a “semente” do sorteio), o resultado muda. O LOOCV não tem sorteio: o resultado é um só.

Lendo o Gráfico: Achados Contraintuitivos

1. Por que o LOOCV ficou pior que o k-fold? Teoricamente ele tem menos viés, mas “menos viés” não significa “número maior”. Significa que ele estima a realidade mais de perto. As estimativas de 5 e 10-fold podem estar ligeiramente otimistas para este dataset.

2. Por que o 10-fold variou mais que o 5-fold? Isso parece contrariar a intuição de que “mais \(k\) = mais estabilidade”. Mas em \(k\) maiores, o conjunto de validação fica muito pequeno. Avaliar um modelo numa amostra minúscula gera saltos grandes na métrica de erro dependendo de quem caiu ali.

Conclusão Prática: O livro-texto (ESL) recomenda \(k=5\) ou \(k=10\). O custo-benefício computacional é imbatível, e a estabilidade da estimativa costuma ser excelente na prática.

Viés e Variância do Estimador de CV

Se LOOCV é “quase sem viés”, por que ele não é sempre a escolha certa — e por que, nesta amostra específica, ele produziu uma estimativa MENOR do que 5-fold e 10-fold, em vez de simplesmente “mais precisa”?

Escreva sua resposta e compare com um colega antes de avançar (2 min).

Dica

Julgue V ou F — a questão só conta se acertar os 4 itens:

  • □ Se, em vez de deixar de fora um único ponto por vez, “LOOCV” deixasse de fora metade dos dados por vez (equivalente a \(k=2\)), ele manteria a mesma propriedade de viés quase nulo que o caracteriza, só mudando o nome do esquema.
  • □ No limite hipotético em que os 398 pacientes de treino fossem todos idênticos entre si (variância zero na população), LOOCV, 5-fold e 10-fold produziriam exatamente a mesma estimativa de acurácia, e a diferença de variância entre eles desapareceria.
  • □ Num modelo de risco de crédito re-treinado mensalmente com dados dos últimos 3 anos, aumentar \(k\) de 5 para 10 tende a reduzir o viés da estimativa, mas essa troca não é garantidamente “de graça” — o 10-fold pode, como nesta aula, variar mais entre repetições do que o 5-fold.
  • □ Como o ESL recomenda \(k=5\) ou \(10\) como escolha prática padrão, conclui-se que usar LOOCV nesta aula seria estatisticamente incorreto, e não apenas computacionalmente mais caro.

Viés e Variância do Estimador de CV — Resposta

Dica

  • ✗ Deixar de fora metade dos dados usa muito menos dados de treino por rodada (~50% em vez de ~99,7%) — isso reintroduz viés; o nome não preserva a propriedade.
  • ✔ Sem variação nos dados, nenhum esquema de reamostragem consegue gerar variabilidade — a diferença de variância entre os esquemas vem da heterogeneidade real da amostra.
  • ✔ É exatamente o achado desta aula (10-fold variou mais que 5-fold aqui) transportado para outro domínio — uma tendência estatística, não uma garantia caso a caso.
  • ✗ LOOCV não é “incorreto” — é uma estimativa válida, só mais cara e potencialmente mais variável; a recomendação prática de \(k=5/10\) é sobre custo-benefício, não sobre correção estatística.

Aplicação: Escolhendo a Poda da Aula 3 por Validação Cruzada

Reaproveitando a Ferramenta da Aula 3

Completa: 19 folhas, teste 91,8%. Escolhida por CV: 4 folhas, teste 91,8% — igual, mais simples.

A Regra de 1 Desvio-Padrão

Escolhe o modelo mais simples dentro de 1 erro-padrão do melhor CV — aqui, 2 folhas.

Custo real: acurácia de teste cai para 90,1%. Parcimônia não é sempre de graça.

Se a árvore de 4 folhas e a árvore de 19 folhas empatam na acurácia de teste, o que exatamente a validação cruzada “comprou” ao escolher a mais simples?

Escreva sua resposta e compare com um colega antes de avançar (2 min).

Seleção de Modelo por CV

Dica

Julgue V ou F — a questão só conta se acertar os 4 itens:

  • □ No limite em que a árvore completa (sem poda) tem exatamente o mesmo número de folhas que a árvore escolhida por CV, a poda por custo-complexidade não teria feito diferença alguma neste experimento.
  • □ Se a árvore completa (19 folhas) tivesse tido acurácia de teste MELHOR do que a árvore de 4 folhas escolhida por CV, isso seria evidência de que a escolha de \(\lambda\) por CV falhou em capturar o ponto ótimo de complexidade neste dataset.
  • □ Num sistema de manutenção preditiva industrial que roda num sensor embarcado com memória limitada, preferir uma árvore de poucas folhas (mesmo empatando em acurácia) seria ainda mais crítico do que no experimento médico desta aula.
  • □ Como a regra de 1-SE tende a escolher modelos mais simples que a de máxima média de CV, conclui-se que a árvore escolhida pela 1-SE neste experimento teve acurácia de teste igual ou melhor do que a árvore de máxima média de CV.

Seleção de Modelo por CV — Resposta

Dica

  • ✔ Se não há diferença de folhas, não há nada para a poda ter mudado.
  • ✔ Seria um sinal de que o \(\lambda\) escolhido podou demais, sacrificando desempenho real.
  • ✔ Restrição de hardware some às vantagens de simplicidade que, no experimento médico, eram “de graça”.
  • ✗ No experimento real, a árvore 1-SE teve acurácia de teste MENOR (90,1% contra 91,8%) — simplicidade custou desempenho aqui.

O Bootstrap: Incerteza de um Estimador

Bootstrap: a Ideia

“Sortear, com reposição, conjuntos de dados a partir dos dados de treino […] \(B\) vezes” (ESL, §7.11).

Cada réplica \(Z^{*b}\) gera uma estatística \(S(Z^{*b})\); com \(B\) réplicas, a própria variância de \(S\) já pode ser estimada diretamente: \[ \widehat{\mathrm{Var}}[S(Z)] = \frac{1}{B-1}\sum_{b=1}^{B} \bigl(S(Z^{*b})-\bar S^*\bigr)^2 \]

Premissa usada a seguir: para \(B\) grande, os percentis empíricos das réplicas aproximam os percentis da verdadeira distribuição amostral de \(S\) — é isso que sustenta o IC percentílico do próximo slide.

Quão Incerta é a Acurácia de Teste?

Ponto: 91,8%. IC 95%: [87,7%, 95,9%] — largo, com só 171 pacientes de teste.

Duas Perguntas Diferentes

Reamostrar o teste: incerteza de medir a acurácia com uma amostra de teste finita.

Reamostrar o treino + reajustar: instabilidade do procedimento de ajuste em si.

CV estima risco esperado. Bootstrap estima variabilidade amostral. Perguntas complementares, não concorrentes.

O Bootstrap

Por que reamostrar o conjunto de teste e reamostrar+reajustar no conjunto de treino respondem perguntas diferentes, mesmo usando a mesma técnica de reamostragem com reposição?

Escreva sua resposta e compare com um colega antes de avançar (2 min).

Dica

Julgue V ou F — a questão só conta se acertar os 4 itens:

  • □ No limite em que \(N\) (o tamanho da amostra original) é muito pequeno (por exemplo, \(N=5\)), o Bootstrap ainda pode ser aplicado mecanicamente, mas as réplicas terão pouquíssima diversidade possível, tornando a estimativa de incerteza pouco confiável.
  • □ Se, em vez de \(B=1000\) réplicas, usássemos \(B=10\), o intervalo de confiança resultante ainda seria válido em teoria, mas sua estimativa dos percentis seria muito mais ruidosa do que com \(B=1000\).
  • □ Numa pesquisa eleitoral com 1000 entrevistados, o Bootstrap poderia estimar um intervalo de confiança para a margem de vitória de um candidato sobre outro, mesmo essa margem sendo uma diferença entre duas proporções, mais complexa que uma média simples.
  • □ Como o Bootstrap e a validação cruzada usam a mesma técnica de reamostragem e ambos produzem uma medida numérica de incerteza/desempenho, reportar os dois juntos seria redundante, bastando escolher um dos dois para qualquer análise.

O Bootstrap — Resposta

Dica

  • ✔ Com poucos pontos, há poucas reamostragens distintas possíveis; a aproximação fica grosseira.
  • \(B\) controla a precisão Monte Carlo da aproximação, não a validade do método em si.
  • ✔ O Bootstrap não se limita a médias; qualquer estatística (inclusive diferenças de proporções) pode ser reamostrada.
  • ✗ CV estima o risco esperado; Bootstrap estima a variabilidade amostral — perguntas diferentes, tipicamente complementares, não redundantes.

Armadilhas Comuns

O Experimento do ESL: Rótulo é Ruído Puro

\(N=50\), \(p=5\,000\) atributos independentes do rótulo. Erro real de qualquer classificador: 50%.

Prática comum, e sutilmente errada: (1) selecionar os 100 atributos mais correlacionados com o rótulo usando toda a amostra; (2) treinar um classificador (1-vizinho-mais-próximo) só com esses 100 atributos; (3) validar esse classificador por CV.

Selecionar Antes vs. Dentro do Fold

Selecionar antes: erro estimado \({\sim}1{,}5\%\) (real: 50%!). Selecionar dentro do fold: \({\sim}48\%\), honesto.

Média Sem Desvio-Padrão é Meia Informação

Nossa poda: CV = 92,97% ± 2,43%. O número sozinho, sem o desvio, sugere precisão que não existe.

Vazamento de Dados

Por que selecionar os atributos mais correlacionados usando a amostra inteira, antes do split de CV, é uma forma de vazamento de dados mesmo que o classificador final só veja os dados de treino de cada fold?

Escreva sua resposta e compare com um colega antes de avançar (2 min).

Dica

Julgue V ou F — a questão só conta se acertar os 4 itens:

  • □ No limite em que o número de atributos candidatos tende a zero (não há nada para selecionar), o vazamento por seleção de atributos deixa de ser possível, por definição.
  • □ Se, em vez de selecionar os 100 atributos mais correlacionados usando toda a amostra, apenas NORMALIZÁSSEMOS todos os atributos usando a amostra inteira antes do split, isso não constituiria vazamento de dados, pois normalização não usa os rótulos.
  • □ Num projeto de detecção de fraude que usa a média e o desvio-padrão de toda a base de transações (incluindo as de validação) para normalizar antes de treinar, esse projeto sofre de vazamento de dados, mesmo sem usar rótulos de fraude/não-fraude na normalização.
  • □ Como o vazamento desta aula foi causado especificamente por selecionar atributos com base nos RÓTULOS antes do split, conclui-se que qualquer pré-processamento que não use os rótulos está automaticamente livre de vazamento de dados.

Vazamento de Dados — Resposta

Dica

  • ✔ Sem atributos candidatos, não há seleção possível, e portanto não há esse mecanismo de vazamento.
  • ✗ Normalizar com estatísticas da amostra inteira (incluindo validação) também é vazamento, mesmo sem tocar nos rótulos — é exatamente o cenário da Questão Discursiva 2 desta aula.
  • ✔ A informação da própria distribuição dos dados de validação vaza para o treino através da normalização compartilhada.
  • ✗ Vazamento pode ocorrer sem nunca usar rótulos, como os itens (b) e (c) acabaram de mostrar.

Conclusão

O que Aprendemos

  1. Erro de treino é otimista por construção — não por acidente
  2. CV simula amostragem repetida de \(P(X,Y)\); \(k=5\) ou \(10\) é o padrão prático
  3. Bootstrap estima variabilidade, não risco esperado — pergunta complementar à CV
  4. Vazamento de dados: qualquer transformação aprendida deve viver dentro do fold

Próxima aula: Regressão Linear — mínimos quadrados como máxima verossimilhança sob ruído gaussiano.