Curva Precisão–Revocação (Precision–Recall, PR)
Visão geral
Uma curva precisão–revocação (PR) (precision–recall (PR) curve) visualiza como a precisão (precision) e a revocação (recall) de um classificador se compensam (trade-off) conforme você varia o limiar de decisão (decision threshold) aplicado à saída contínua de um modelo (probabilidade, score, logit). Curvas PR são especialmente úteis quando a classe positiva é rara (desbalanceamento de classes), porque se concentram diretamente no desempenho para a classe positiva.
Curvas PR são comumente usadas em:
- Detecção de fraude (fraude é rara)
- Triagem médica (prevalência da doença é baixa)
- Recuperação de informação / busca
- Detecção de anomalias
- Qualquer cenário em que falsos positivos e falsos negativos tenham custos diferentes
Se você é novo nas métricas subjacentes, veja Precisão e Revocação e Pontuação F1. Para uma métrica geral de “correção global” que frequentemente falha sob desbalanceamento, veja Acurácia.
Precisão e revocação (revisão rápida)
Para classificação binária, defina:
- TP: verdadeiros positivos
- FP: falsos positivos
- FN: falsos negativos
- TN: verdadeiros negativos
Então:
Precisão (também conhecida como valor preditivo positivo): [ \text{Precision} = \frac{TP}{TP + FP} ] “Entre os positivos previstos, quantos eram realmente positivos?”
Revocação (também conhecida como sensibilidade, taxa de verdadeiros positivos): [ \text{Recall} = \frac{TP}{TP + FN} ] “Entre os positivos reais, quantos encontramos?”
Uma curva PR plota precisão (eixo y) versus revocação (eixo x) conforme o limiar muda.
Por que curvas PR são especialmente úteis sob desbalanceamento de classes
Com forte desbalanceamento de classes, você pode obter um desempenho aparentemente muito bom em métricas que dependem fortemente de verdadeiros negativos (por exemplo, acurácia). Curvas PR evitam isso ao focar em:
- Quão “limpo” é o seu conjunto de positivos previstos (precisão)
- Quantos positivos reais você captura (revocação)
Uma propriedade-chave: a linha de base “sem habilidade” para a precisão é a prevalência da classe positiva: [ \text{Baseline precision} = \frac{P}{P+N} ] Assim, se apenas 1% dos exemplos são positivos, um ranqueamento aleatório produz ~1% de precisão em média. Um modelo que alcança 20% de precisão com revocação significativa é muito forte em um domínio assim.
Como construir uma curva PR
Entradas necessárias
Para construir uma curva PR, você precisa de:
- Rótulos binários verdadeiros (y \in {0,1})
- Um score para cada exemplo (maior significa “mais provavelmente positivo”):
- probabilidade prevista de uma regressão logística
- função de decisão de uma SVM
- logit do modelo
- qualquer score de ranqueamento
Você não deve construir uma curva PR apenas a partir de predições de classe rígidas (0/1), porque uma curva precisa de múltiplos limiares.
Ideia de construção: varrer o limiar
Para um limiar (t), preveja positivo se (\text{score} \ge t). Calcule TP/FP/FN e, portanto, precisão/revocação. Varie (t) de muito alto para muito baixo.
- Limiar muito alto: poucos positivos previstos → alta precisão (frequentemente), baixa revocação
- Limiar muito baixo: muitos positivos previstos → alta revocação, frequentemente menor precisão
Algoritmo prático (baseado em ranqueamento)
Uma implementação comum:
- Ordene os exemplos por score em ordem decrescente.
- A partir do topo, inclua progressivamente mais itens como positivos previstos.
- Após cada inclusão, calcule: [ \text{Precision}@k = \frac{TP_k}{k}, \quad \text{Recall}@k = \frac{TP_k}{P} ] onde (k) é quantos itens você incluiu até agora, e (P) é o total de positivos no conjunto de dados.
Isso produz uma curva em degraus.
E quanto a empates nos scores?
Se muitos exemplos compartilham o mesmo score, diferentes bibliotecas lidam com isso de forma ligeiramente diferente (agrupando scores empatados). Isso pode afetar o formato exato da curva, mas geralmente não as conclusões gerais.
Interpretando a curva PR
Lendo pontos na curva
Cada ponto corresponde a um limiar:
- Um ponto em (revocação=0.80, precisão=0.25) significa:
- Você captura 80% de todos os positivos
- De tudo que você sinaliza como positivo, 25% são realmente positivos
Se isso é “bom” depende dos custos do seu domínio e da prevalência.
A região desejável
- Quanto mais alto, melhor: mais precisão para a mesma revocação.
- Quanto mais à direita, melhor: mais revocação para a mesma precisão.
Na prática, você frequentemente se importa com uma parte específica da curva, como:
- Região de alta precisão (se falsos positivos são caros)
- Região de alta revocação (se perder positivos é perigoso)
Linha de base e prevalência
Sempre compare com a precisão de linha de base = prevalência. Por exemplo, se a prevalência é 2%:
- Uma precisão de 10% é 5× melhor do que aleatório naquela região de operação.
- Uma curva PR que permanece perto de 2% de precisão é essencialmente inútil.
Curvas PR podem se cruzar
O Modelo A pode ser melhor em alta revocação enquanto o Modelo B é melhor em alta precisão. Isso é comum. Se você se importa com uma região de operação específica, avalie ali, não apenas por um único número-resumo.
Escolhendo um ponto de operação (seleção de limiar)
Uma curva PR não serve apenas para comparar modelos — é uma ferramenta para escolher um limiar com base em requisitos.
Formas comuns de escolher um limiar:
1) Atender a uma restrição mínima de precisão
Exemplo: “Pelo menos 90% dos alertas devem ser fraude real.”
- Encontre limiares em que precisão ≥ 0.90
- Escolha, entre esses, aquele com máxima revocação (ou mínima carga de trabalho)
Isso é comum em sistemas com humano no loop (human-in-the-loop), onde falsos positivos desperdiçam o tempo do investigador.
2) Atender a uma restrição mínima de revocação
Exemplo: “Precisamos detectar pelo menos 95% dos cânceres.”
- Encontre limiares em que revocação ≥ 0.95
- Escolha, entre esses, aquele com maior precisão
3) Otimizar um resumo escalar no limiar
- Maximizar F1 (equilibra precisão e revocação): [ F1 = \frac{2PR}{P+R} ]
- Ou maximizar F(_\beta) se revocação (β>1) ou precisão (β<1) for mais importante.
Veja Pontuação F1 para detalhes.
4) Definição de limiar baseada em custo
Se você puder estimar custos:
- Custo(FP): custo de um alarme falso
- Custo(FN): custo de deixar de detectar um positivo
Então escolha o limiar que minimiza o custo esperado (frequentemente via dados de validação). Curvas PR ajudam a visualizar as implicações, mas a decisão é, em última análise, orientada por custo.
5) Seleção orientada por carga de trabalho (top‑k / precisão@k)
Em cenários de ranqueamento/recuperação, você pode revisar apenas os (k) itens do topo (por exemplo, top 100 alertas/dia). Então:
- Avalie precisão@k, revocação@k, e o ponto correspondente na curva PR.
- O limiar é o score que separa os (k) do topo do restante.
Precisão média (AP) e área sob a curva PR (AUPRC)
Curvas PR são úteis visualmente, mas você frequentemente quer um resumo em um único número para comparar modelos. Dois resumos comuns são Precisão Média (AP) (Average Precision (AP)) e Área sob a Curva PR (AUPRC) (Area Under the PR Curve (AUPRC)). Às vezes as pessoas usam esses termos como sinônimos, mas os detalhes importam.
Precisão Média (AP)
AP resume uma lista ranqueada ao fazer a média dos valores de precisão nos pontos em que a revocação aumenta (isto é, quando você encontra um verdadeiro positivo ao varrer do maior score para o menor).
Uma definição comum (usada por muitas bibliotecas de aprendizado de máquina) é: [ AP = \sum_n (R_n - R_{n-1}), P_n ] onde (P_n) e (R_n) são precisão e revocação no n-ésimo limiar.
Intuição:
- AP recompensa ranquear verdadeiros positivos cedo (alta precisão nos ganhos iniciais de revocação).
- AP é amplamente usada em recuperação de informação e tarefas de detecção.
AUPRC
“AUPRC” informalmente significa a integral (área) sob a curva precisão–revocação. Como curvas PR são em degraus e podem ser interpoladas de diferentes maneiras, há diferenças sutis nas “áreas” que alguém poderia computar.
Na prática:
- Muitas ferramentas reportam AP como o resumo padrão.
- Algumas referências chamam isso de “área sob a curva PR”, embora as convenções de interpolação difiram do AUC ROC.
Convenções de interpolação (por que definições de AP podem diferir)
Historicamente, alguns benchmarks usavam precisão interpolada, por exemplo, substituindo a precisão em um nível de revocação pelo máximo de precisão alcançado para qualquer revocação maior. Outros usavam interpolação de 11 pontos (métrica VOC mais antiga). A prática moderna tipicamente usa a área em degraus consistente com a definição de AP acima.
Ao comparar resultados entre artigos ou sistemas, verifique:
- qual definição de AP é usada
- se é aplicada média macro/micro (cenários multiclasse/multirrótulo)
- a prevalência do conjunto de dados e o protocolo de avaliação
Exemplo prático: detecção de fraude desbalanceada
Suponha que você tenha 100.000 transações, 1.000 são fraudes (prevalência de 1%). Seu modelo gera um score de fraude.
Se você definir um limiar baixo e sinalizar 10.000 transações:
- Você pode capturar 900 fraudes (revocação = 0.90)
- Mas apenas 900 de 10.000 são fraude (precisão = 0.09)
Se você definir um limiar mais alto e sinalizar 500 transações:
- Você pode capturar 300 fraudes (revocação = 0.30)
- Precisão = 300/500 = 0.60
A curva PR mostra todos esses trade-offs. O ponto “certo” depende de:
- capacidade dos investigadores (quantas podem ser revisadas)
- o custo de deixar de detectar fraudes
- fricção para o cliente devido a falsos positivos
Notavelmente, uma precisão de 0.60 é 60× a linha de base (1%), o que é extremamente forte — mesmo que a revocação seja apenas 0.30.
Relação com curvas ROC (e quando PR é preferível)
Uma curva ROC (ROC curve) plota TPR (revocação) vs FPR. A AUC ROC é insensível ao desbalanceamento de classes de um jeito que pode ser enganoso: quando negativos dominam, um modelo pode alcançar um FPR pequeno e ainda assim produzir muitos falsos positivos em termos absolutos.
Curvas PR são frequentemente mais informativas quando:
- positivos são raros
- você se importa com a qualidade do conjunto de positivos previstos
- falsos positivos são caros devido ao volume
Curvas ROC ainda são úteis quando:
- você se importa com discriminação de forma ampla entre as classes
- o balanceamento de classes não é extremo
- você precisa raciocinar sobre FPR explicitamente
Se o seu wiki tiver, veja Curva ROC para uma comparação mais aprofundada.
Curvas PR multiclasse e multirrótulo
Curvas PR são inerentemente “focadas na classe positiva”, então para problemas multiclasse você geralmente reduz a múltiplos problemas binários:
Curvas PR um-contra-resto
Para cada classe (c):
- trate a classe (c) como positiva, todas as outras como negativas
- compute a curva PR e a AP para aquela classe
Depois, resuma via:
- AP de média macro: média da AP entre classes (trata todas as classes igualmente)
- AP de média micro: agrega todas as decisões e computa uma única AP global (pondera mais as classes frequentes)
Classificação multirrótulo
Cada rótulo é um problema binário separado; AP de média macro/micro são ambas comuns. Como dados multirrótulo frequentemente são desbalanceados por rótulo, PR/AP é frequentemente preferida em relação a métricas do tipo acurácia.
Armadilhas comuns e boas práticas
1) Curvas PR dependem da prevalência
A precisão muda se o balanceamento de classes muda. Isso significa:
- Você não pode comparar diretamente curvas PR entre conjuntos de dados com prevalências diferentes, a menos que leve isso em conta.
- Se sua prevalência no mundo real difere da do conjunto de teste, a precisão observada pode não se transferir.
2) Use uma divisão de avaliação adequada (evite vazamento)
Curvas PR são fáceis de superestimar se:
- você ajusta limiares no conjunto de teste
- você realiza vazamento de atributos
- você avalia repetidamente no mesmo holdout
Use dados de validação (ou Validação Cruzada) para escolher limiares e reserve um conjunto de teste final para relato imparcial.
3) Considere calibração de probabilidade (mas PR é focada em ranqueamento)
Curvas PR dependem principalmente do ranqueamento pelo score, não de calibração perfeita de probabilidade. Ainda assim:
- Má calibração pode tornar a seleção de limiar menos estável ao longo do tempo.
- Se você usa o score como probabilidade, considere Calibração de Probabilidade.
4) Compare curvas na região de operação que importa para você
Se sua aplicação exige precisão ≥ 0.95, então AP ao longo da curva inteira pode esconder o fato de que um modelo tem desempenho ruim nessa região de alta precisão. Sempre inspecione o recorte relevante.
5) Intervalos de confiança importam
Curvas PR (e AP) podem ter alta variância quando positivos são raros. Para comparações robustas:
- faça bootstrap da AP para obter intervalos de confiança
- reporte a variabilidade entre folds
Computando curvas PR e AP na prática (scikit-learn)
Um fluxo de trabalho típico em Python:
import numpy as np
from sklearn.metrics import precision_recall_curve, average_precision_score
# y_true: array of 0/1 labels
# y_score: continuous scores (e.g., predicted probabilities for class 1)
precision, recall, thresholds = precision_recall_curve(y_true, y_score)
ap = average_precision_score(y_true, y_score)
print("Average precision:", ap)
# Example: choose threshold maximizing F1
f1 = 2 * precision * recall / (precision + recall + 1e-12)
best_idx = np.argmax(f1)
best_precision = precision[best_idx]
best_recall = recall[best_idx]
# Note: precision_recall_curve returns thresholds of length (len(precision)-1)
best_threshold = thresholds[best_idx] if best_idx < len(thresholds) else 1.0
print("Best F1 point:")
print(" threshold =", best_threshold)
print(" precision =", best_precision)
print(" recall =", best_recall)
Notas:
precision_recall_curveretorna arrays em queprecisionerecallincluem um endpoint extra em relação athresholds.- Se você se importa com uma restrição operacional (por exemplo, precisão ≥ 0.9), filtre os pontos de acordo e escolha a melhor revocação entre eles.
Resumo
- Uma curva PR plota precisão vs revocação ao longo de limiares de decisão e é particularmente informativa sob desbalanceamento de classes.
- Ela ajuda você a:
- comparar modelos nas regiões que importam
- escolher limiares que atendam a restrições de precisão/revocação ou requisitos de custo/carga de trabalho
- Precisão Média (AP) e “AUPRC” fornecem resumos em um único número, mas você deve verificar a definição exata e o método de interpolação ao comparar entre fontes.
- Curvas PR são melhor tratadas como uma ferramenta de apoio à decisão: combine-as com restrições do domínio, custos e um protocolo de avaliação cuidadoso.
Para definições fundamentais, veja Precisão e Revocação e Pontuação F1.