O seu modelo está certo. E completamente inútil. Como isso é possível?

Imagine que você é contratado para resolver um problema real.

Uma empresa de crédito quer prever quais clientes vão deixar de pagar. O histórico tem cem mil transações. Você prepara os dados, escolhe o algoritmo, treina o modelo, avalia no conjunto de teste. A acurácia aparece na tela: 97,3%.

Você respira fundo. Isso é um resultado excelente. Você prepara a apresentação, mostra os números, o cliente fica impressionado. O modelo vai para produção.

Duas semanas depois, o telefone toca. O modelo não está funcionando. Está sinalizando quase ninguém como inadimplente. A equipe de risco continua no escuro.

Você volta para os dados e descobre o que deveria ter visto antes de treinar qualquer coisa: 97,3% dos clientes no histórico nunca deixaram de pagar.

O modelo aprendeu uma política perfeita e completamente inútil: classificar todo mundo como adimplente. Acerta 97,3% das vezes. Não detecta um único caso de inadimplência. E do ponto de vista da métrica que você otimizou, é um modelo excelente.

Esse cenário tem um nome técnico. Chama-se problema de classes desbalanceadas. É um dos erros mais comuns em projetos reais de Machine Learning. E ele não acontece porque o engenheiro não sabia programar. Acontece porque a métrica errada foi escolhida para o problema errado — e ninguém percebeu até ser tarde.


A ilusão da acurácia

A acurácia é a métrica mais intuitiva em classificação: de todas as previsões que o modelo fez, qual fração estava correta?

É também, em muitos problemas reais, a métrica mais enganosa que existe.

O motivo é simples. A acurácia trata todos os erros como iguais e todos os acertos como iguais. Mas no mundo real, erros não são iguais. Classificar um e-mail legítimo como spam é um inconveniente. Classificar um tumor maligno como benigno é uma tragédia. Classificar uma transação fraudulenta como legítima custa dinheiro. Classificar uma transação legítima como fraudulenta constrange um cliente inocente.

Quando as classes são desbalanceadas — quando um resultado é muito mais raro que o outro — a acurácia infla artificialmente porque o modelo aprende que a estratégia mais segura é sempre prever a classe majoritária. Ele nunca erra na maioria. E a maioria é quase tudo.

O problema, claro, é que a classe minoritária é frequentemente a que importa. Fraudes são raras — mas são o que você quer detectar. Tumores malignos são menos comuns que benignos — mas são o que o diagnóstico precisa pegar. Falhas em equipamentos industriais são infrequentes — mas são exatamente o que o sistema de manutenção preditiva existe para antecipar.

Um modelo com 99% de acurácia num problema de detecção de fraude pode estar errando em 100% das fraudes reais. E a métrica não vai te contar isso.


O problema mais fundo: medir o que é fácil, não o que importa

O desbalanceamento de classes é apenas o exemplo mais visível de um problema mais profundo.

Em Machine Learning, medimos o que conseguimos medir com facilidade. Acurácia, precisão, recall, F1-score, AUC-ROC — todas são métricas que calculamos sobre um conjunto de dados rotulados, num momento específico, sob condições controladas. São números reais, reproduzíveis, comparáveis entre modelos.

O que raramente medimos com a mesma rigor é o que realmente importa: o modelo funciona no mundo real, com dados que ninguém rotulou, em situações que não estavam no conjunto de teste, produzindo consequências para pessoas reais?

Essa distância — entre o que medimos e o que importa — tem um nome que já mencionei no artigo anterior: a Lei de Goodhart. Quando uma métrica se torna o alvo, ela deixa de ser uma boa medida do objetivo original. O modelo otimiza a métrica. E a métrica não é o objetivo.

Deixa eu tornar isso concreto com três casos que qualquer estudante de ML vai encontrar cedo ou tarde.

O modelo de recomendação que maximiza cliques. Cliques são fáceis de medir. Satisfação do usuário, valor de longo prazo, qualidade da informação consumida — não são. Então você otimiza para cliques. O modelo descobre que conteúdo sensacionalista, indignante ou controverso gera mais cliques do que conteúdo preciso e equilibrado. A métrica sobe. O objetivo real desce.

O modelo de seleção de currículos que minimiza tempo de contratação. Contratar rápido é mensurável. Contratar bem é difícil de quantificar. O modelo aprende a favorecer candidatos parecidos com os que foram contratados antes — porque esses têm maior probabilidade histórica de passar pelo processo inteiro sem atritos. Diversidade cai. Viés histórico se perpetua. O tempo de contratação diminui. A métrica está ótima.

O modelo de saúde que reduz readmissões hospitalares. Readmissões são um indicador de qualidade do cuidado — pacientes que voltam ao hospital logo após a alta provavelmente não receberam tratamento adequado. Faz sentido otimizar para reduzi-las. Mas um estudo real mostrou que alguns hospitais reduziram readmissões simplesmente deixando de admitir pacientes de alto risco — porque se o paciente nunca é admitido, ele nunca pode ser readmitido. A métrica melhorou. O cuidado piorou.

Em todos esses casos, o modelo fez exatamente o que foi pedido. O problema estava na pergunta, não na resposta.


O que perguntar antes de olhar para qualquer métrica

Quando apresento resultados de modelos em aula, passei a exigir que os alunos respondam três perguntas antes de mostrar qualquer número.

A primeira: o que exatamente essa métrica está medindo? Não o nome dela — o que ela calcula, matematicamente, e o que isso representa no contexto do problema.

A segunda: quais tipos de erro essa métrica ignora ou subestima? Todo indicador agrega informação e, ao agregar, esconde alguma coisa. O que está escondido aqui?

A terceira: se o modelo otimizar perfeitamente essa métrica e nada mais, o problema estará resolvido? Essa é a mais difícil — e a mais importante. Porque frequentemente a resposta é não, e perceber isso antes do treinamento vale mais do que qualquer ajuste de hiperparâmetro depois.

Essas perguntas não são difíceis de entender. São difíceis de lembrar de fazer — especialmente quando você está no meio de um projeto, com prazo, com um conjunto de dados na mão e um algoritmo pronto para rodar. A pressão natural é começar a treinar e ver o que acontece. A disciplina necessária é parar um momento antes e perguntar: o que vou medir, e isso é realmente o que preciso saber?


Uma coisa que mudou na minha forma de ensinar

Durante um tempo, ensinei métricas de avaliação como uma lista de ferramentas: acurácia serve para isso, precision-recall serve para aquilo, use AUC-ROC quando as classes são desbalanceadas. Uma receita.

Receitas são úteis. Mas receitas não ensinam a pensar — ensinam a seguir passos. E o problema com seguir passos em ML é que os problemas reais raramente se encaixam nas categorias da receita.

Hoje começo pelo outro lado: pelo objetivo de negócio, pelo problema humano, pela consequência real de cada tipo de erro. Só depois chegamos às métricas — como traduções imperfeitas de algo que importa para algo que conseguimos calcular.

A pergunta que quero que os alunos saiam sabendo fazer não é qual métrica usar? É o que estou disposto a perder quando escolho otimizar isso?

Porque toda escolha de métrica é um trade-off. Aumentar a sensibilidade de um detector de fraude significa aceitar mais falsos positivos — mais clientes legítimos bloqueados. Reduzir falsos positivos significa aceitar mais fraudes passando despercebidas. Não há configuração perfeita. Há escolhas — e essas escolhas têm consequências para pessoas reais que nunca vão ver o código que as afeta.

Entender isso não é saber Machine Learning. É saber o que fazer com Machine Learning.


O modelo com 97,3% de acurácia estava certo.

E era completamente inútil.

A diferença entre as duas coisas não está no algoritmo. Está em quem, antes de apertar o botão de treinar, parou para perguntar: certo em relação ao quê — e isso é o que eu preciso?

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *