Capítulo 1.6 — Treinamento, validação e leakage¶
🎯 Objetivo¶
Definir splits, validação cruzada e prevenção de leakage como práticas obrigatórias.
🧠 Conceitos¶
- Train/validation/test split - três partições distintas e não cruzadas.
- Cross-validation - k-fold para datasets pequenos; usar com cautela em dados temporais.
- Validação temporal - para dados com ordem temporal, treinar no passado e validar no futuro.
- Stratified split - preserva distribuição de classes.
- Group split - preserva entidade (usuário, tenant) entre treino e teste.
🚨 Tipos de leakage¶
- Target leakage - feature contém informação do label.
- Label leakage - label aparece como feature em transformação.
- Train-test contamination - overlap entre splits.
- Feature contamination - feature usa estatística calculada sobre o dataset inteiro.
- Temporal leakage - informação futura entra em treino do passado.
🛡️ Mitigações¶
- Validar splits programaticamente.
- Calcular estatísticas de normalização apenas em treino.
- Aplicar group split quando há entidades repetidas.
- Auditar correlação suspeita entre feature e label.
📌 Checklist¶
- [ ] Split é reproduzível com seed?
- [ ] Validação temporal é usada quando aplicável?
- [ ] Há testes que detectam target leakage?