이진 분류기를 평가하기 위해 수신자 작동 특성(ROC) 곡선을 사용하는 방법을 알아보세요. Ultralytics 통해 TPR(진양성률)과 FPR(위양성률) 간의 상충 관계를 탐구해 보세요.
수신자 작동 특성(ROC) 곡선은 이진 분류 모델의 성능을 평가하는 데 사용되는 기본적인 그래픽 도구입니다. 기계 학습(ML) 분야에서 이 곡선은 가능한 모든 결정 임계값에 걸쳐 모델의 민감도와 특이도 사이의 상충 관계를 시각화합니다. 데이터셋이 불균형할 경우 오해의 소지가 있는 정확도와 같은 단일 값 지표와 달리, ROC 곡선은 양성 사례를 식별하는 기준이 더 엄격해지거나 완화됨에 따라 분류기가 어떻게 행동하는지에 대한 포괄적인 시각을 제공합니다. 이 시각화는 감독 학습 기법을 활용하는 엔지니어가 특정 사용 사례에 대한 최적의 작동 지점을 결정하는 데 필수적입니다.
ROC 곡선을 이해하려면 서로에 대해 플롯된 두 매개변수, 즉 진양성률(TPR)과 거짓양성률(FPR)을 살펴볼 필요가 있습니다.
이 곡선은 역동적인 관계를 보여줍니다: 더 많은 양성 사례를 포착하기 위해 신뢰도 임계값을 낮출수록 (TPR 증가), 부정 사례를 잘못 표시할 위험이 반드시 증가합니다(FPR 증가). 완벽한 분류기는 그래프의 좌상단 모서리에 위치하며, 이는 100% 민감도와 0% 오경보를 의미합니다. 무작위 추측을 하는 모델은 좌하단에서 우상단으로 이어지는 대각선으로 나타납니다. 전체 성능은 일반적으로 곡선 아래 면적(AUC)으로 요약되며, 1.0 값은 완벽함을 나타냅니다.
ROC 곡선에서 임계값을 어디에 설정할지에 대한 결정은 특정 산업 응용 분야에서 발생하는 오류 비용에 전적으로 달려 있다.
ROC 곡선을 그리려면 최종 클래스 레이블이 아닌 원시 예측 확률이 필요합니다. 다음 예제는 최첨단 YOLO26 모델을 사용하여 분류 점수를 생성합니다.
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}")
검증 세트에 대해 이러한 확률 값을 수집한 후 개발자는 Scikit-learn과 같은 라이브러리를 사용하여 곡선 점들을 계산할 수 있습니다. 데이터셋 관리 및 시간 경과에 따른 이러한 지표 추적을 위해 Ultralytics 모델 평가 및 배포를 위한 통합 도구를 제공합니다.
ROC 곡선을 다른 평가 도구와 구분하는 것이 중요합니다: