Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Receiver Operating Characteristic (ROC) Curve

Uma curva característica de operação do recetor (ROC) representa a taxa de verdadeiros positivos em função da taxa de falsos positivos para cada limiar. Como a interpretar, AUC e código.

Uma curva da característica de operação do recetor (ROC) é um gráfico que mostra o desempenho de um classificador binário na separação de duas classes para todos os limiares de decisão possíveis. Representa a taxa de verdadeiros positivos no eixo y em função da taxa de falsos positivos no eixo x, com um ponto por cada limiar aplicado às pontuações do modelo, pelo que um único gráfico abrange todas as compensações entre detetar positivos e gerar falsos alarmes. A sua área, a área sob a curva (AUC), resume o gráfico num único valor independente do limiar. O nome tem origem na engenharia de radares da Segunda Guerra Mundial, onde media a capacidade dos operadores de recetores de radar para distinguir aeronaves inimigas do ruído; mais tarde, o método estendeu-se à medicina, à psicologia e à aprendizagem automática (ML).

Como se constrói uma curva ROC#

Cada ponto da curva provém de uma matriz de confusão calculada com um determinado limiar:

  • Taxa de verdadeiros positivos (TPR), também chamada revocação ou sensibilidade: TP / (TP + FN), a proporção de positivos reais assinalados pelo modelo.
  • Taxa de falsos positivos (FPR): FP / (FP + TN), a proporção de negativos reais assinalados incorretamente. A FPR é igual a 1 menos a especificidade.

Ao percorrer o limiar de um valor alto para um baixo, a curva vai de (0, 0), onde nada é assinalado, a (1, 1), onde tudo é assinalado. Um classificador que ordena todos os positivos acima de todos os negativos passa pelo canto superior esquerdo; um modelo que adivinha aleatoriamente segue a diagonal; e uma curva abaixo da diagonal significa que as pontuações estão invertidas. A AUC equivale à probabilidade de um positivo escolhido aleatoriamente receber uma pontuação superior à de um negativo escolhido aleatoriamente, por isso 0.5 corresponde ao acaso e 1.0 à separação perfeita. Para construir a curva, são necessárias pontuações contínuas, como probabilidades previstas ou valores de confiança, pois as etiquetas binárias 0/1 fornecem apenas um ponto. O exemplo seguinte treina um classificador de regressão logística num conjunto de dados desequilibrado e calcula a sua curva com o roc_curve do scikit-learn:

import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score, roc_curve
from sklearn.model_selection import train_test_split

# Binary task where 10% of samples are positive
X, y = make_classification(n_samples=5000, weights=[0.9], class_sep=0.8, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=0)

# ROC analysis needs continuous scores, not hard 0/1 predictions
scores = LogisticRegression().fit(X_train, y_train).predict_proba(X_test)[:, 1]
fpr, tpr, thresholds = roc_curve(y_test, scores)
print(f"AUC: {roc_auc_score(y_test, scores):.3f}")

# Each threshold is one point on the curve: higher recall costs more false alarms
for target in (0.80, 0.95):
    i = np.argmax(tpr >= target)  # first point that reaches the target TPR
    print(f"Threshold {thresholds[i]:.2f}: TPR {tpr[i]:.2f}, FPR {fpr[i]:.2f}")

O modelo atinge uma AUC de 0.963. Com um limiar de 0.44, deteta 82% dos positivos com uma FPR de 0.01, enquanto atingir uma revocação de 95% exige baixar o limiar para 0.02, o que faz a FPR subir para 0.26. Nesta divisão de teste, com 130 positivos e 1,120 negativos, detetar mais 18 positivos custa mais 279 falsos alarmes.

Escolher um ponto de operação#

A curva mostra o custo de cada limiar, e a aplicação decide qual é o custo aceitável:

  • Rastreio médico: Não detetar um tumor é muito mais prejudicial do que realizar um exame de acompanhamento, por isso as ferramentas de rastreio funcionam num ponto de TPR elevada e aceitam mais falsos positivos para serem analisados por radiologistas.
  • Deteção de fraude: Cada pagamento legítimo bloqueado causa transtorno ao cliente, por isso os bancos escolhem um ponto que detete a maior parte das fraudes e mantenha a FPR num nível suportável para as equipas de análise e os clientes.
  • Custos iguais: Quando ambos os erros têm o mesmo custo, a estatística J de Youden — TPR menos FPR — escolhe o ponto mais afastado acima da diagonal.

Os modelos de classificação Ultralytics YOLO26 devolvem uma probabilidade para cada classe em results[0].probs.data, as pontuações contínuas necessárias à análise ROC; assim, recolher a probabilidade de uma classe num conjunto de validação etiquetado fornece a curva ROC dessa classe contra todas as outras e permite escolher um limiar adequado aos custos da implementação.

Uma curva de precisão-revocação representa a precisão em função da revocação, em vez da TPR em função da FPR. Como a TPR e a FPR são calculadas dentro de cada classe, uma curva ROC mantém-se igual quando os positivos se tornam mais raros, enquanto a precisão diminui. Quando os positivos são raros, como na deteção de fraude ou na deteção de anomalias, uma FPR baixa pode ainda significar mais falsos alarmes do que deteções verdadeiras, e um estudo da PLOS ONE sobre conjuntos de dados desequilibrados concluiu que, nessa situação, os gráficos de precisão-revocação são mais informativos. A deteção de objetos é avaliada com curvas de precisão-revocação e precisão média (mAP) por um motivo semelhante: as regiões de fundo que contariam como verdadeiros negativos não têm limites, pelo que a FPR não tem um denominador fixo.

  • Precisão e pontuação F1: Valores únicos medidos com um só limiar, enquanto a curva ROC e a respetiva AUC resumem todos os limiares.
  • Classificação de imagens com muitas classes: Cada classe tem uma curva ROC contra todas as outras, e as AUC por classe são calculadas numa média macro ou ponderada pela prevalência, que o roc_auc_score do scikit-learn calcula com multi_class="ovr".

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina