Area Under the Curve (AUC)
A AUC converte uma curva ROC numa única pontuação entre 0 e 1: a probabilidade de um classificador ordenar um positivo aleatório acima de um negativo aleatório. AUC ROC vs. AUC PR, com código.
A área sob a curva (AUC) é uma métrica que resume a capacidade de um classificador binário para distinguir duas classes em todos os limiares de decisão possíveis. Em aprendizagem automática, AUC refere-se quase sempre à área sob a curva ROC (característica de operação do recetor), também designada ROC AUC ou AUROC. O seu valor equivale à probabilidade de o modelo atribuir uma pontuação superior a um exemplo positivo escolhido aleatoriamente do que a um exemplo negativo escolhido aleatoriamente. Uma AUC de 1,0 significa que todos os exemplos positivos ficam acima dos negativos; 0,5 significa que a ordenação não é melhor do que o acaso; e valores inferiores a 0,5 significam que a ordenação está invertida. Como depende apenas da ordenação das pontuações, a AUC avalia um modelo antes de alguém escolher um limiar, o que a torna uma métrica padrão para modelos de diagnóstico médico, avaliação de crédito e deteção de fraude.
Como se calcula a AUC#
A curva ROC representa a taxa de verdadeiros positivos, que corresponde ao recall, em função da taxa de falsos positivos, ou seja, a proporção de negativos assinalados incorretamente, à medida que o limiar de decisão percorre as pontuações da mais alta à mais baixa. Um limiar acima de todas as pontuações não assinala nada e corresponde a (0, 0); um limiar abaixo de todas as pontuações assinala tudo e corresponde a (1, 1). A AUC é a área sob a linha que liga todos os pontos intermédios, geralmente calculada pela regra trapezoidal.
É possível obter o mesmo valor contando pares. Comparar cada positivo com cada negativo e atribuir 1 ao par quando o positivo fica acima, 0,5 em caso de empate e 0 nos restantes casos dá exatamente a ROC AUC, uma quantidade que os estatísticos conhecem como estatística U de Mann-Whitney normalizada e os investigadores médicos como concordância ou estatística c. As equipas de risco de crédito apresentam muitas vezes o coeficiente de Gini, que equivale a 2 × AUC − 1.
A perspetiva por pares explica as principais propriedades da AUC. Qualquer transformação que mantenha a ordenação das pontuações, como elevar probabilidades ao quadrado ou aplicar escalonamento de temperatura aos logits de um classificador binário, mantém a AUC inalterada. Assim, um modelo pode ter uma AUC excelente e probabilidades mal calibradas. A calibração exige uma métrica separada, como a pontuação de Brier.
ROC AUC vs. PR AUC em dados desequilibrados#
A ROC AUC não depende da proporção entre classes, porque a taxa de verdadeiros positivos é calculada apenas entre os positivos e a taxa de falsos positivos apenas entre os negativos. Esta propriedade torna-se uma desvantagem quando os positivos são raros. Com 1 positivo em 100, uma taxa de falsos positivos de 5% gera cerca de cinco falsos alarmes por cada positivo real, mas mal altera a curva ROC. A área sob a curva precisão-recall (PR AUC), geralmente resumida como precisão média (AP), representa a precisão em função do recall e expõe diretamente esses falsos alarmes, o que a torna mais informativa do que a curva ROC em dados desequilibrados. O script scikit-learn abaixo avalia o mesmo modelo das duas formas:
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import average_precision_score, roc_auc_score
from sklearn.model_selection import train_test_split
# Imbalanced binary problem: 1 positive per 100 samples
X, y = make_classification(n_samples=20_000, weights=[0.99], flip_y=0, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, stratify=y, random_state=0)
# Score the test set with a simple classifier
model = LogisticRegression(max_iter=1000).fit(X_train, y_train)
scores = model.predict_proba(X_test)[:, 1]
# The same scores summarized by the areas under two different curves
print(f"Positives in test set: {y_test.sum()} of {len(y_test)}")
print(f"ROC AUC: {roc_auc_score(y_test, scores):.3f}")
print(f"PR AUC (average precision): {average_precision_score(y_test, scores):.3f}")Com 100 positivos entre 10 000 amostras de teste, o modelo alcança uma ROC AUC de 0,911, mas uma precisão média de apenas 0,462. Os dois valores também têm linhas de base diferentes: uma ordenação aleatória obtém uma ROC AUC de 0,5, independentemente do equilíbrio entre classes, enquanto a sua precisão média é igual à taxa de positivos, que neste caso é 0,01.
AUC multiclasse e deteção de objetos#
A ROC AUC está definida para duas classes. Para mais classes, a função roc_auc_score do scikit-learn calcula a média das AUCs um-contra-o-resto, em que cada classe é comparada com todas as outras, ou das AUCs um-contra-um de cada par de classes, com uma média macro ou ponderada pela prevalência.
A deteção de objetos não pode utilizar curvas ROC, porque os negativos correspondem a todas as localizações de caixas que não contêm objetos — um conjunto efetivamente ilimitado, sem uma taxa de falsos positivos significativa. As métricas de deteção utilizam, em vez disso, áreas sob curvas de precisão-recall. A validação do YOLO26 na Ultralytics calcula a precisão média de cada classe como a área sob o respetivo envelope de precisão-recall, amostrado em 101 pontos de recall, tal como na avaliação COCO, e calcula a média dessas áreas para obter a precisão média (mAP) em limiares de IoU de 0,50 a 0,95.
AUC vs. termos relacionados#
- Precisão: Mede as previsões corretas num único limiar e pode parecer excelente em dados desequilibrados, mesmo sem identificar nenhum positivo. A AUC mede a ordenação em todos os limiares.
- Pontuação F1: Combina precisão e recall num único limiar, pelo que avalia um ponto de operação, enquanto a AUC resume todos os pontos.
- Matriz de confusão: Conta os verdadeiros e falsos positivos e negativos num único limiar. Cada ponto ROC resume uma matriz de confusão como um par de taxas.
- Precisão média: A área sob a curva de precisão-recall, o resumo habitual quando os positivos são raros e o principal componente da mAP.
- AUC parcial: A área numa faixa limitada de falsos positivos, como 0 a 0,1, utilizada quando só são aceitáveis taxas baixas de falsos alarmes, como em programas de rastreio em grande escala, em que cada falso alarme desencadeia um exame de seguimento.










