Validação de modelo — notas completas
Fonte: Ciência de Dados · Módulo 3 — validação de modelo · Coursera · Prof. Park · 46 min
Por que dividir os dados
Aula- Objetivo: estimar como o modelo performa em dados não vistos — a única métrica que importa.
- Modo de falha: se você só avalia em train, qualquer modelo parece bom (mesmo os ruins).
- Princípio hold-out: nenhuma decisão (modelo, hiperparâmetros) pode ver o teste antes da avaliação final.
Três vias
Aula- Train: para ajustar os parâmetros do modelo.
- Val: para afinar hiperparâmetros e comparar modelos — tocado com frequência.
- Test: uma única vez no final para estimar o desempenho real.
- Por que três: se você ajusta no test, ele vira um segundo train — superestima a generalização.
Proporções típicas
Aula- 70/15/15: padrão para datasets médios (1k–100k amostras).
- 80/10/10: comum com 10k–100k amostras e CV em train.
- Big data 98/1/1: com 1M+ amostras, 1% ainda é 10k — suficiente para estimativas estáveis.
Estratificação
Aula- Quando: sempre que houver desequilíbrio de classes ou eventos raros.
- Como: preserva a proporção de classes em cada partição — evita val com 0 positivos.
- Ferramenta: StratifiedKFold do sklearn ou train_test_split(stratify=y).
Validação cruzada
Aula- k-fold: dividir train em k partes; treinar em k-1, validar em 1; rodar; média dos k scores.
- k típico: 5 ou 10 — além disso, retornos decrescentes.
- Séries temporais: janela expansiva ou rolante — nunca treinar em dados futuros.
Sobreajuste
Aula- Definição: o modelo memoriza ruído em vez de aprender o sinal.
- Sinal: a acurácia de train sobe enquanto a de val estagna ou cai.
- Remédios: mais dados, modelo mais simples, L1/L2, dropout, early stopping, data augmentation.
Vazamento de dados
Aula- Pré-processamento: ajustar Scaler no dataset inteiro (val/test incluídos) vaza informação de distribuição.
- Solução: colocar o pré-processamento dentro de uma Pipeline com CV.
- Temporal: treinar em dados futuros para prever o passado — em séries temporais usar splits rolantes.
Exemplo trabalhado
Aula- Setup: 10.000 amostras, classificação binária, split 70/15/15.
- Contagem: train = 7.000, val = 1.500, test = 1.500.
- Estratificado: razão 80/20 → cada partição mantém essa razão.






