01
O que dá errado quando você só olha a acurácia
Uma empresa de cartões cria um modelo para identificar transações fraudulentas. No teste, a acurácia (accuracy) dá 95%. Ou seja, acertou 95 de 100, o que parece bem bom. Mas e se, dessas 100 transações, só 5 fossem fraude?
Na cena abaixo, cada célula é uma transação, e as vermelhas são as fraudes reais. As células que o modelo marca como "fraude" ficam em relevo. Alterne entre os dois modelos.
- Acurácia
- 95%
- Revocação
- 0%
Um modelo que procura 5 fraudes entre 100 transações
Não fez nada: respondeu "normal" todas as vezes e mesmo assim a acurácia é de 95%. Não pegou nenhuma fraude (revocação 0%).
O modelo que sempre responde "normal" não aprendeu nada e, mesmo assim, tem 95% de acurácia. Não pegou nenhuma fraude. O modelo treinado de verdade tem acurácia menor, 93%, mas pegou 4 das 5 fraudes. É do segundo que essa empresa precisa.
Acurácia é a porcentagem de previsões certas sobre o total. Quando um resultado é muito mais comum que o outro, o que se chama de dados desbalanceados, dá para ter acurácia alta só respondendo sempre o resultado mais comum. A maioria dos problemas em que aquilo que você procura é raro funciona assim: detecção de fraude, diagnóstico de doenças, inspeção de defeitos.
Se a questão disser… → escolha isto
- “Só 1% dos dados é positivo”Precisão, revocação ou F1 em vez de acurácia
- “Responder sempre a classe majoritária já dá nota alta”A armadilha da acurácia
Então, o que olhar no lugar dela? Tudo começa separando os acertos e erros do modelo em quatro grupos.
02
Matriz de confusão, precisão, revocação e F1
Quando um modelo escolhe entre duas respostas, como "spam ou não spam", todo resultado cai em uma de quatro caixas. A classe que você quer encontrar (spam) se chama positiva, e a outra (e-mail normal), negativa. Depois, você acrescenta verdadeiro se o modelo acertou e falso se errou.
Esta é a parte que confunde. Digamos que o modelo chame um e-mail normal de spam. Ele disse "positivo" e errou, então é um falso positivo (FP). Se ele deixa passar um spam como normal, é um falso negativo (FN). "Positivo" ou "negativo" é o que o modelo disse; "verdadeiro" ou "falso" diz se ele acertou. As siglas TP, FP, FN e TN vêm do inglês e são as que você vai ver na maioria das ferramentas.
| O modelo diz: spam (positivo) | O modelo diz: normal (negativo) | |
|---|---|---|
| É spam | TP, verdadeiro positivo: pegou | FN, falso negativo: deixou escapar |
| É normal | FP, falso positivo: marcou por engano | TN, verdadeiro negativo: deixou passar certo |
Essa tabela se chama matriz de confusão. Dela saem duas proporções importantes.
Precisão = TP ÷ (TP + FP)
De tudo o que o modelo chamou de spam, quanto era spam de verdade? "Quando ele marca, acerta?" Olhe para ela quando alarmes falsos custam caro.
Revocação (recall) = TP ÷ (TP + FN)
De todo o spam real, quanto o modelo pegou? "Pegou tudo?" Olhe para ela quando deixar escapar custa caro. Também se chama sensibilidade, e em muitos materiais você vai ver direto o termo em inglês, recall.
Um modelo de classificação costuma dar uma pontuação entre 0 e 1 e considera positivo tudo o que passar de um limiar (threshold) escolhido por você. A cena abaixo enfileira 20 e-mails pela pontuação. Experimente mover o limiar.
- Matriz de confusão
- TP 4 · FP 3 · FN 2 · TN 11
- Métricas
- Precisão 57% · Revocação 67% · F1 62%
20 e-mails, 6 deles spam. Tudo à direita do limiar (células em relevo) é filtrado como spam
Limiar 0.5: pegou 4 dos 6 e-mails de spam (revocação 67%), e dos 7 que filtrou, 4 são spam de verdade (precisão 57%). Quanto mais você baixa o limiar, mais a revocação sobe e mais a precisão cai.
Se você sobe o limiar, o modelo só marca o que tem certeza, e a precisão sobe, mas mais spam escapa, e a revocação cai. Se você baixa o limiar, acontece o contrário. Em geral, quando uma sobe, a outra desce. Por isso o limiar é definido pelo erro que custa mais caro. Numa triagem de câncer, em que não dá para deixar nenhum caso escapar, você prioriza a revocação. Num filtro de spam que nunca pode esconder um e-mail importante, você prioriza a precisão.
O F1-score deixa você olhar as duas ao mesmo tempo. Ele é a média harmônica de precisão e revocação, então, se uma for alta e a outra baixa, o F1 também sai baixo. É um jeito comum de comparar modelos com um só número em dados desbalanceados.
Se a questão disser… → escolha isto
- “Não dá para deixar nenhum caso escapar (doença, fraude)”Revocação (recall)
- “Não dá para marcar nada por engano (filtro de spam)”Precisão
- “Precisão e revocação juntas em um número”F1-score
- “Um negativo previsto como positivo por engano”Falso positivo (FP)
- “Um positivo que escapou como negativo”Falso negativo (FN)
Mas, se precisão e revocação mudam a cada limiar, como comparar dois modelos antes de escolher o limiar?
Publicidade
03
Curva ROC e AUC
Baixe o limiar aos poucos, de 1 até 0, e a cada passo meça duas coisas. A taxa de verdadeiros positivos (TPR) é a parte do spam real que você pegou. A taxa de falsos positivos (FPR) é a parte dos e-mails normais que você filtrou por engano. A TPR é a mesma coisa que a revocação do capítulo 2. Coloque a FPR no eixo horizontal e a TPR no vertical, ligue os pontos e você tem a curva ROC.
Um bom modelo pega o spam rápido filtrando poucos e-mails normais por engano, então a curva dele sobe direto para o canto superior esquerdo. Um modelo que chuta segue a diagonal. A área sob a curva se chama AUC (area under the curve). Na cena abaixo, a área que as colunas preenchem é a AUC.
- AUC
- 0.84
(FPR, TPR) registrados ao baixar o limiar de 1 até 0. A área que as colunas preenchem é a AUC
Pega o spam rápido filtrando poucos e-mails normais por engano. Quanto mais a curva cola no canto superior esquerdo, mais a área (AUC 0.84) se aproxima de 1.
A AUC vai de 0,5 (chute) a 1 (perfeito). Ela resume em um só número o quanto o modelo separa positivos de negativos sem se prender a um limiar específico. Por isso é prática para comparar vários modelos antes de escolher o limiar. Só que, quando você coloca o modelo em produção, precisa fixar um limiar, e aí volta para a precisão e a revocação do capítulo 2.
Se a questão disser… → escolha isto
- “Comparar modelos sem depender do limiar”AUC
- “Curva da sensibilidade contra 1 − especificidade”Curva ROC
- “AUC de 0,5”Não é melhor que chutar
Até aqui, os modelos adivinhavam uma categoria, como "spam ou não". Um modelo que prevê um número, como vendas ou o preço de um imóvel, não simplesmente acerta ou erra. É preciso medir o quanto ele errou.
Exclusivo Pro
Até aqui vai a parte gratuita
Os outros 5 capítulos estão disponíveis para assinantes Pro. Cada um continua com visuais em 3D e dicas de “se a questão disser…”, e no último capítulo você testa o que aprendeu.
- 04MAE e RMSE
- 05Avaliar texto gerado
- 06LLM como juiz e avaliação humana
- 07Testes A/B e métricas de negócio
- 08Como escolher uma métrica
PasslyExam
Você já leu o conceito. Agora teste com questões de prova
O PasslyExam oferece questões práticas originais, explicações e simulados completos baseados no guia oficial de cada certificação. As explicações mostram por que a opção certa está certa e por que as opções parecidas estão erradas. Cadastre-se e pratique de graça todos os dias.
Provas que cobrem este conceito