A fraude silenciosa por trás dos 100% de acurácia em ML (e o Kaggle)
Série: Construindo uma Machine Learning Trust Platform (4/8)
No artigo anterior, expus o problema silencioso do AutoML: dashboards bonitos escondendo modelos mal compreendidos.
Mas existe algo ainda mais perigoso. Quando o modelo não está errado…
ele está “perfeito demais”.
Recentemente, analisando o clássico dataset do Titanic no Kaggle, vi algo curioso: vários “modelos” com 100% de acurácia 🚨.
… eu não fiquei impressionado. Fiquei desconfiado.
Para um iniciante isso parece impressionante.
Para um cientista de dados… é um alerta vermelho.
Fui investigar. E descobri algo curioso. Muitos desses "modelos perfeitos" não estavam fazendo Machine Learning. O Titanic é um evento histórico real. A lista de sobreviventes existe publicamente. Então alguns participantes fazem algo simples:
- baixam a lista real de passageiros
- fazem um join com o test.csv
- submetem a resposta pronta
Resultado?
100% de acerto. Mas isso não é Machine Learning.
Isso é consulta em banco de dados.
Tecnicamente isso se chama Target Leakage.
O modelo (ou o processo) tem acesso a informações que não existiriam no momento da predição real.

Se você já viu 100% de acurácia... você deveria ficar preocupado.
Se um modelo atinge 100% em um problema como o Titanic, provavelmente aconteceu uma de duas coisas:
- vazamento de dados (data leakage)
- fraude metodológica
No meu caso, rodando o dataset no AWS SageMaker Canvas, o melhor modelo ficou em torno de 86% de acurácia.
Esse número parece menor. Mas na verdade ele vale muito mais.
Porque 86% significa que o modelo realmente aprendeu padrões:
- mulheres e crianças primeiras
- influência da classe social
- acesso aos botes
Isso é generalização.
100% não é inteligência.
É apenas o gabarito da prova.
No mundo real — seja em grandes empresas ou em plataformas como o OpenCanvas Pro que estou construindo — um modelo com 100% seria imediatamente investigado.
Porque em Machine Learning:
um número bonito não significa um modelo confiável.
Às vezes significa exatamente o contrário.
Esse tipo de experiência me fez perceber que o problema não está apenas nos modelos.
Muitas vezes está nas ferramentas que usamos para treiná-los.
E você já encontrou algum caso de target leakage em projetos reais?



