Imagine treinar um modelo de machine learning que atinge 99% de acurácia. Impressionante, certo? Mas e se esse desempenho for apenas uma ilusão causada por um erro grave na construção do dataset? Esse erro se chama data leakage.

O data leakage acontece quando o modelo tem acesso a informações que não estariam disponíveis no momento real da predição. Ele aprende padrões que parecem bons nos dados de treino, mas que não existem no mundo real, levando a previsões irreais em produção.
Um caso específico e ainda mais traiçoeiro é o target leakage, quando variáveis preditoras já contêm, de forma explícita ou disfarçada, informações do próprio alvo que estamos tentando prever. Isso faz com que o modelo pareça excelente nos testes, mas falhe miseravelmente na prática.
Neste artigo, vamos explorar esses conceitos, trazendo exemplos reais para que você nunca mais caia nessas armadilhas.
Data Leakage na Prática
Exemplo: Modelo de cancelamento de assinaturas
Você trabalha em uma empresa de streaming e precisa criar um modelo para prever quais clientes provavelmente cancelarão a assinatura no próximo mês.
Ao analisar os dados, encontra uma feature chamada “Quantidade de ligações para suporte no último mês” e percebe que clientes que cancelam tendem a ligar mais. Parece uma ótima variável, certo? Errado!
Essa variável pode conter informações do futuro. Se o dado for coletado ao longo do mês e usado para prever algo que acontece no final do período, estamos indiretamente incluindo informações que o modelo nunca teria acesso real na hora de prever.
Esse é um exemplo clássico de data leakage nas features, onde uma variável dá ao modelo uma vantagem injusta, comprometendo a utilidade real da previsão.
Outros tipos de data leakage
- Leakage no split treino/teste
- Se um dataset contém registros temporais e você divide os dados de forma aleatória, pode acontecer de o modelo “ver” dados do futuro enquanto treina. Isso acontece muito em previsões financeiras e séries temporais.
- Leakage na engenharia de features
- Criar variáveis usando agregações que incluem informações do futuro, como calcular a média de vendas futuras e usá-la como input no modelo.
Target Leakage: O Erro Fatal
Exemplo: Fraudes bancárias
Agora imagine que um banco quer um modelo para detectar fraudes em transações financeiras.
Durante a análise de dados, você encontra uma feature chamada “Transação foi bloqueada pelo sistema”. Testando, percebe que essa variável melhora drasticamente a performance do modelo. Mas pense bem: se a transação já foi bloqueada pelo sistema, isso significa que a fraude já foi detectada!
Ou seja, essa feature depende diretamente do rótulo que estamos tentando prever. Esse é um caso clássico de target leakage, onde a variável preditora contém a resposta de forma disfarçada.
Se esse modelo for implementado, ele falhará porque, na prática, não terá acesso àquela informação no momento da predição.
Outros exemplos de target leakage
- Modelos de saúde
- Criando um modelo para prever se um paciente tem pneumonia, mas incluindo uma variável indicando se ele já tomou antibióticos específicos para tratar a doença. O modelo parecerá ótimo, mas na prática será inútil.
- Previsão de falência de empresas
- Usar dados financeiros de meses futuros para prever falências de empresas. Se o modelo já souber que a empresa não pagou dívidas em meses futuros, não estará fazendo previsão alguma, apenas memorizando.
Como Detectar Data Leakage?
Descobrir vazamento de dados nem sempre é fácil, mas algumas práticas podem ajudar:
✅ Revise as features: Cada variável estaria disponível no momento da predição?
✅ Verifique a separação treino/teste: Alguma informação do futuro vazou para os dados de treino?
✅ Desconfie de métricas muito boas: Se a acurácia parece surreal, pode haver um problema.
✅ Considere a realidade do problema: O modelo teria acesso a essa informação na vida real?
Estratégias para Prevenir Data Leakage
- Faça a separação treino/teste antes de criar as features
- Muitas vezes, o erro acontece porque criamos variáveis antes de dividir os dados. Sempre faça a divisão antes da engenharia de features.
- Use timeseries split para dados temporais
- Nunca use dados futuros para treinar um modelo que precisa prever eventos futuros.
- Crie features com dados que realmente estariam disponíveis na hora da predição
- Se uma variável depende de eventos que ainda não ocorreram, ela não pode estar no modelo.
- Converse com especialistas de domínio
- Nem sempre data leakage é óbvio. Profissionais da área podem ajudar a identificar se uma informação não faz sentido na previsão.
Conclusão
Data leakage e target leakage são problemas que podem destruir a utilidade de um modelo. Muitas vezes, eles passam despercebidos até o modelo ser implementado e falhar em produção.
A melhor forma de evitar esses erros é questionar cada variável e entender como os dados são gerados na prática. Um bom cientista de dados não apenas treina modelos, mas garante que eles sejam confiáveis no mundo real.
Se você já teve experiências com leakage, compartilhe nos comentários!
Recomendação de livros para inpulsionar sua carreira
- Mãos à obra aprendizado de máquina com Scikit-Learn, Keras & TensorFlow: conceitos, ferramentas e técnicas para a construção de sistemas inteligentes.
- Python para análise de dados
- Estatística Prática Para Cientistas de Dados: 50 Conceitos Essenciais
- An Introduction to Statistical Learning (Python e R)