Aprenda a usar a curva Receiver Operating Characteristic (ROC) para avaliar classificadores binários. Explore as compensações entre TPR e FPR com Ultralytics .
A curva Receiver Operating Characteristic (ROC) é uma ferramenta gráfica fundamental usada para avaliar o desempenho de modelos de classificação binária. No domínio da aprendizagem automática (ML), ela visualiza o trade-off entre a sensibilidade de um modelo e a sua especificidade em todos os limiares de decisão possíveis. Ao contrário de métricas de valor único, como a precisão, que podem ser enganosas se um conjunto de dados estiver desequilibrado, a curva ROC fornece uma visão abrangente de como um classificador se comporta à medida que os critérios para identificar instâncias positivas se tornam mais ou menos rigorosos. Essa visualização é essencial para engenheiros que utilizam técnicas de aprendizagem supervisionada para determinar o ponto de operação ideal para o seu caso de uso específico.
Para compreender uma curva ROC, é necessário observar os dois parâmetros representados um em relação ao outro: a Taxa de Verdadeiros Positivos (TPR) e a Taxa de Falsos Positivos (FPR). A TPR representa a percentagem de casos de interesse que foram corretamente identificados como verdadeiros positivos. A FPR representa a percentagem de casos de interesse que foram corretamente identificados como verdadeiros positivos.
A curva ilustra uma relação dinâmica: à medida que se reduz o limiar de confiança para capturar mais casos positivos (aumentando a TPR), aumenta-se invariavelmente o risco de sinalizar casos negativos incorretamente (aumentando a FPR). Um classificador perfeito atingiria o canto superior esquerdo do gráfico, indicando 100% de sensibilidade e 0% de falsos alarmes. Um modelo que faz suposições aleatórias apareceria como uma linha diagonal da parte inferior esquerda para a parte superior direita. O desempenho geral é frequentemente resumido pela Área Sob a Curva (AUC), onde um valor de 1,0 representa a perfeição.
A decisão de onde definir o limiar numa curva ROC depende inteiramente do custo dos erros numa aplicação industrial específica .
Para traçar uma curva ROC, você precisa das probabilidades de previsão brutas, em vez de apenas os rótulos de classe finais. O exemplo a seguir usa o modelo YOLO26 de última geração para gerar pontuações de classificação.
from ultralytics import YOLO
# Load a pretrained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference to get probability distribution
results = model("bus.jpg")
# Access the probability score for the predicted class
# These continuous scores are required to calculate TPR/FPR at different thresholds
print(f"Top Class Index: {results[0].probs.top1}")
print(f"Confidence Score: {results[0].probs.top1conf:.4f}")
Depois de recolher essas probabilidades para um conjunto de validação, os programadores podem usar bibliotecas como o Scikit-learn para calcular os pontos da curva. Para gerir conjuntos de dados e acompanhar essas métricas ao longo do tempo, a Ultralytics oferece ferramentas integradas para avaliação e implementação de modelos.
É importante distinguir a curva ROC de outras ferramentas de avaliação: