Capítulo-piloto do esqueleto v4. É aqui que o formato do livro foi validado antes de ser exigido dos demais — como o cap. 04 foi o piloto do livro de Engenharia de Harness, e pela mesma razão: avaliação é o assunto em que a diferença entre "achar que entendeu" e "entender" aparece mais rápido.
Objetivos de aprendizagem
- O1. Explicar por que acurácia é enganosa sob desbalanceamento de classes.
- O2. Calcular e interpretar precisão, revocação e F1 a partir de uma matriz de confusão.
- O3. Escolher a métrica adequada a partir do custo do erro no problema, e não por hábito.
- O4. Distinguir a qualidade do ranking (AUC) da qualidade da decisão (limiar), e explicar por que calibração é uma terceira coisa.
- O5. Reportar uma métrica com incerteza, em vez de um ponto.
O problema: 99,7% de acurácia sem modelo nenhum
Uma operadora de cartões pede um detector de fraude. A base tem 0,3% de transações fraudulentas. A equipe treina, mede, e reporta com orgulho: 99,5% de acurácia.
O número é verdadeiro e é inútil. Um "modelo" de uma linha — return "não é fraude" — atinge 99,7%. A equipe entregou algo pior que a ausência de modelo, e a métrica escolhida escondeu isso atrás de dois noves.
Este capítulo é sobre não deixar isso acontecer. E o mecanismo do erro não é matemático — é de processo: a métrica foi escolhida depois do modelo, por hábito, em vez de antes, a partir do custo do erro.
A linha de base que você precisa bater
Antes de qualquer métrica sofisticada, calcule o que um classificador trivial atinge:
- Classificação: sempre a classe majoritária.
- Regressão: sempre a média (ou a mediana) do treino.
- Séries temporais: repetir o último valor observado. Essa costuma ser surpreendentemente difícil de bater.
Se o modelo não bate a linha de base, ele não tem valor — independentemente de quantos dígitos a acurácia tenha. Registre esse número no início do projeto e mantenha-o visível em todo relatório. É o gesto mais barato de higiene metodológica que existe, e o mais frequentemente pulado.
04-e1escolha umaNuma base de detecção de fraude com 0,3% de casos positivos, um modelo atinge 99,5% de acurácia no teste. Qual leitura é correta?
De onde isto veio
Este capítulo tem um nome estranho no meio dele — curva ROC, "característica de operação do receptor". Receptor de quê? A resposta explica a métrica inteira.
O aperto. Segunda Guerra Mundial, estações de radar britânicas e americanas. Um operador olha uma tela e vê um borrão. Aquilo é um bombardeiro inimigo, um navio amigo, uma revoada de pássaros, ou ruído do próprio aparelho? Ele tem segundos para decidir, e os dois erros matam: deixar passar um bombardeiro custa uma cidade; disparar o alarme à toa esgota a defesa e, repetido, faz os alarmes serem ignorados.
O que se fazia antes. Conta-se que a qualidade do operador e do equipamento era medida por uma taxa de acerto — quantas detecções corretas num turno — e que daí apareceu o problema que este capítulo inteiro persegue: um operador nervoso, que apertasse o botão em quase tudo, teria taxa de detecção excelente. O número subiria; a defesa pioraria. (Esta narrativa é a corrente na literatura didática de detecção de sinal; não a conferimos em fonte da época — ver a tabela ao fim da seção.)
A virada. Perceber que detecção e falso alarme não são dois defeitos independentes: são as duas pontas de um mesmo botão. Segundo a versão corrente, o receptor de radar tinha um controle de ganho — girá-lo para cima fazia aparecer mais alvos verdadeiros e mais fantasmas; para baixo, limpava a tela e escondia bombardeiros. Não existia posição sem custo. Então pare de medir um ponto e meça a curva inteira: para cada posição do botão, quanto se detecta e quanto se alarma à toa. Essa curva é a característica de operação do receptor.
A ideia reaproveitável — e é a maior deste capítulo. O limiar não é propriedade do modelo; é a decisão de quem assume as consequências. No radar isso era literal: havia um botão, e girá-lo trocava um tipo de erro por outro. Um modelo entrega um ranking; transformá-lo em decisão exige alguém dizer quanto custa cada erro. Nenhum valor de limiar é "o certo" sem essa conversa — e quando o cientista de dados escolhe o limiar sozinho, ele não está fazendo uma escolha técnica: está tomando, calado, uma decisão que era de outra pessoa.
O nome. Receiver Operating Characteristic é literalmente a característica de operação daquele receptor de rádio. O gráfico como o usamos vem do trabalho pós-guerra em teoria da detecção de sinal (Peterson & Birdsall, 1953; Peterson et al., 1954), e chega à psicologia por Tanner e Swets — de onde migra para a medicina, a meteorologia e, por fim, para cá.
Por que a história importa na prática. Quem sabe que a ROC nasceu de um botão físico nunca mais confunde "o modelo é bom" com "o limiar está certo". São duas perguntas, e só a primeira é técnica.
Procedência das afirmações desta seção:
| Selo | Afirmação |
|---|---|
| ⏳ | A origem no radar da Segunda Guerra e o controle de ganho ajustável pelo operador — consistente entre fontes secundárias; nenhuma primária da época foi aberta |
| ⏳ | Peterson & Birdsall (1953), Peterson et al. (1954) e a passagem por Tanner e Swets |
| ⏳ | O caso do operador com alta taxa de detecção por excesso de alarme — narrado de forma consistente na literatura didática de detecção de sinal |
| 📖 | A ideia reaproveitável ("o limiar é decisão de quem assume as consequências") e a leitura de que escolher limiar calado é tomar decisão alheia |
Fundamentos: a matriz de confusão e o que dela deriva
Toda métrica de classificação binária nasce de quatro números:
| Predisse positivo | Predisse negativo | |
|---|---|---|
| É positivo | Verdadeiro Positivo (VP) | Falso Negativo (FN) |
| É negativo | Falso Positivo (FP) | Verdadeiro Negativo (VN) |
A partir deles:
| Métrica | Fórmula | Pergunta que responde |
|---|---|---|
| Acurácia | (VP+VN)/total | de tudo, quanto acertei? |
| Precisão | VP/(VP+FP) | dos que apontei como positivos, quantos eram? |
| Revocação | VP/(VP+FN) | dos que eram positivos, quantos encontrei? |
| F1 | média harmônica de precisão e revocação | um número quando os dois importam igualmente |
| Especificidade | VN/(VN+FP) | dos negativos, quantos deixei em paz? |
A distinção entre precisão e revocação é o eixo do capítulo, e a mnemônica que funciona é a das perguntas: precisão olha para a coluna do que você apontou; revocação olha para a linha do que existia.
E há um trade-off inescapável entre elas. Um modelo que aponta tudo como positivo tem revocação 1,0 e precisão péssima. Um que aponta apenas o caso de que tem certeza absoluta tem precisão alta e revocação irrisória. Mover o limiar desloca você ao longo dessa curva — nunca melhora os dois ao mesmo tempo.
Worked example: a mesma matriz, três leituras
Um modelo de triagem médica, avaliado em 1.000 pacientes, dos quais 100 têm a doença:
| Predisse doente | Predisse saudável | |
|---|---|---|
| Doente | VP = 80 | FN = 20 |
| Saudável | FP = 40 | VN = 860 |
- Acurácia = (80+860)/1000 = 0,940
- Precisão = 80/(80+40) = 0,667 — de cada 3 alarmes, 1 é falso
- Revocação = 80/(80+20) = 0,800 — 20 doentes passaram despercebidos
- F1 = 2·(0,667·0,800)/(0,667+0,800) = 0,727
- Linha de base trivial ("todos saudáveis") = 900/1000 = 0,900
Três leituras do mesmo modelo, e todas verdadeiras:
- "94% de acurácia" — tecnicamente correto, e quase desonesto: o trivial faz 90%.
- "Encontra 4 de cada 5 doentes" — a leitura da revocação. É a que importa numa triagem, porque o custo de um FN é uma doença não tratada.
- "Um terço dos alarmes é falso" — a leitura da precisão. É a que determina se o serviço é operável: se cada alarme custa um exame caro, 33% de desperdício pode inviabilizar o programa.
A métrica certa é a que responde à pergunta cujo erro custa caro. Numa triagem, FN mata e FP custa dinheiro — então revocação manda, com precisão como restrição orçamentária. Num filtro de spam, é o inverso: o FN é um email chato na caixa de entrada, o FP é uma fatura perdida na pasta de lixo. Mesmo formalismo, prioridades opostas.
04-e2responda com um númeroUm classificador produziu a seguinte matriz de confusão: VP = 45, FP = 15, FN = 30, VN = 410.
Qual é a precisão? Responda com 2 casas decimais.
04-e3escolha umaUm sistema faz a triagem inicial de currículos, descartando candidatos antes de qualquer olhar humano. Qual métrica deve orientar a decisão de limiar, e por quê?
Ranking, decisão e calibração — três coisas diferentes
Um classificador quase sempre produz um escore contínuo, e só vira decisão quando você escolhe um limiar. Isso separa três perguntas que costumam ser confundidas numa só.
1. O ranking é bom? — Se eu ordenar todos os exemplos pelo escore, os positivos ficam no topo? É o que a AUC-ROC mede: a probabilidade de um positivo sorteado ao acaso receber escore maior que um negativo sorteado ao acaso. AUC não depende de limiar nenhum.
2. A decisão é boa? — Escolhido um limiar, quantos FP e FN aparecem? É aí que vivem precisão, revocação e o custo real da operação.
3. Os escores são probabilidades honestas? — Quando o modelo diz 0,8, isso acontece 80% das vezes? Isso é calibração, e é uma propriedade independente das duas anteriores. Um modelo pode ter AUC excelente (ordena perfeitamente) e ser péssimo calibrado (todos os escores comprimidos entre 0,4 e 0,6). Se a decisão a jusante multiplica a probabilidade por um valor monetário — preço, provisão, expectativa de perda — calibração deixa de ser refinamento e vira requisito.
Uma armadilha específica. Sob desbalanceamento severo, a AUC-ROC é otimista: o eixo de falsos positivos é normalizado pelo total de negativos, que é enorme, então mesmo muitos FP mal movem a curva. Para classes raras, prefira a AUC-PR (precisão × revocação), cuja linha de base é a própria prevalência — 0,003 no exemplo da fraude, o que deixa qualquer melhora visível em vez de diluída.
Cláusula de expiração. Escrevo em 2026 que AUC-PR é a escolha padrão para classes raras e que a calibração é tratada como etapa pós-treino (Platt, isotônica). Se, na próxima revisão, os modelos de uso geral estiverem entregando escores bem calibrados sem etapa dedicada, esta seção muda de recomendação. Acompanhamento no placar de expiração.
04-e4escolha todas que valemUm modelo tem AUC-ROC de 0,95 no teste. Quais conclusões são legítimas a partir só desse número? (marque todas que valem)
Métrica é uma estimativa — reporte a incerteza
Uma acurácia de 0,94 medida em 100 exemplos e uma medida em 100.000 exemplos são o mesmo número e informações muito diferentes. A primeira tem intervalo de confiança de 95% de aproximadamente ±0,047; a segunda, de ±0,0015. Reportar as duas como "0,94" apaga a diferença que mais importa para decidir.
Duas práticas baratas resolvem quase tudo:
- Intervalo por bootstrap: reamostre o conjunto de teste com reposição algumas centenas de vezes, recalcule a métrica em cada reamostra, e reporte os percentis 2,5 e 97,5. Não exige suposição sobre a distribuição e funciona para qualquer métrica.
- Validação cruzada com desvio-padrão: reporte média ± desvio entre as dobras. Um modelo com 0,84 ± 0,01 e outro com 0,86 ± 0,09 não estão empatados nem separados — estão em situações qualitativamente diferentes, e o segundo é instável.
Regra prática que vale como norma editorial deste livro: duas métricas sem intervalos não podem ser comparadas. "Melhorou de 0,912 para 0,918" é uma frase sem conteúdo até que se saiba se o ruído da medição é maior que 0,006.
04-e5responda com suas palavrasSua equipe compara dois modelos no mesmo conjunto de teste de 800 exemplos: o modelo A tem F1 = 0,812 e o modelo B, F1 = 0,829. Alguém propõe substituir A por B em produção.
Escreva a resposta que você daria: o que falta saber antes dessa decisão, e como você obteria essa informação.
Mão na massa
A etapa 04 do ml-zero implementa, em NumPy puro e sem scikit-learn:
matriz_confusao(y_true, y_pred)— os quatro números;precisao,revocacao,f1derivadas dela;curva_preauc_prpor varredura de limiares;bootstrap_ic(metrica, y_true, y_score, n=1000)— o intervalo de confiança;- a comparação pareada entre dois modelos que o exercício 04-e5 pediu.
Implementar precisão e revocação uma vez, à mão, é o antídoto mais duradouro contra trocá-las — que é o erro mais comum do capítulo, inclusive entre praticantes experientes.
Assista
A curva ROC é o conceito deste capítulo que menos sobrevive à explicação em prosa. O vídeo constrói a curva ponto a ponto, deslizando o limiar e mostrando a matriz de confusão mudar junto — e é essa animação que faz cair a ficha de que ROC não é uma métrica de um modelo, mas o retrato de todos os limiares de uma vez. Assista antes do exercício 04-e4.
O vídeo só é pedido ao servidor de origem depois deste clique.
Síntese — o que levar
- Calcule a linha de base trivial antes de tudo e mantenha-a em todo relatório. Modelo que não a bate não existe.
- Acurácia informa quando as classes são equilibradas e os erros custam igual. Fora disso, ela esconde.
- Escolha a métrica pelo custo do erro, antes de treinar. Escolher depois é escolher a que ficou bonita.
- AUC mede ranking; limiar produz decisão; calibração é uma terceira propriedade, exigida sempre que a probabilidade vira dinheiro.
- Métrica sem intervalo não se compara. Bootstrap pareado é barato e resolve.
Verificação
- Explique a diferença entre precisão e revocação para alguém de negócio, sem escrever nenhuma fórmula.
- Em que situação um modelo com AUC de 0,99 pode ser inútil na prática? Dê um exemplo concreto.
- Sua equipe reporta "acurácia de 97%". Que três perguntas você faz antes de aprovar o deploy?