Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Receiver Operating Characteristic (ROC) Curve

수신자 조작 특성(ROC) 곡선은 모든 임계값에서 참 양성률을 거짓 양성률에 대해 표시합니다. 곡선 읽는 법, AUC 및 코드를 살펴봅니다.

수신자 조작 특성(ROC) 곡선은 이진 분류기가 모든 가능한 결정 임계값에서 두 클래스를 얼마나 잘 구분하는지 보여주는 그래프입니다. 모델 점수에 적용한 각 임계값마다 점 하나를 표시하고, y축에는 참양성률, x축에는 거짓양성률을 그려 양성을 찾아내는 것과 오경보를 발생시키는 것 사이의 모든 상충 관계를 한 그림에 담습니다. 곡선 아래 면적인 곡선 아래 면적(AUC)은 이 내용을 임계값에 구애받지 않는 하나의 수치로 요약합니다. 이 명칭은 제2차 세계대전 당시의 레이더 공학에서 유래했습니다. 당시에는 레이더 수신기 운용자가 적 항공기를 잡음과 얼마나 잘 구별하는지를 측정했으며, 이후 의학, 심리학, 머신러닝(ML) 분야로 확산되었습니다.

ROC 곡선을 만드는 방법#

곡선 위의 각 점은 하나의 임계값에서 계산한 혼동 행렬에서 나옵니다.

  • 참양성률(TPR), 재현율 또는 민감도라고도 합니다: TP / (TP + FN)으로, 실제 양성 중 모델이 양성으로 표시한 비율입니다.
  • 거짓양성률(FPR): FP / (FP + TN)으로, 실제 음성 중 잘못 양성으로 표시한 비율입니다. FPR은 1에서 특이도를 뺀 값입니다.

임계값을 높은 값에서 낮은 값으로 바꾸면 곡선은 아무것도 표시되지 않는 (0, 0)에서 모든 항목이 표시되는 (1, 1)까지 이어집니다. 모든 양성에 더 높은 순위를 부여하는 분류기는 왼쪽 위 모서리를 통과하고, 무작위로 예측하는 모델은 대각선을 따릅니다. 대각선 아래에 있는 곡선은 점수의 방향이 반전되었음을 의미합니다. AUC는 무작위로 고른 양성이 무작위로 고른 음성보다 높은 점수를 받을 확률과 같으므로, 0.5는 무작위 수준이고 1.0은 완벽한 분리입니다. 곡선을 만들려면 예측 확률이나 신뢰도 값과 같은 연속 점수가 필요합니다. 0/1의 확정 레이블만 있으면 점 하나만 얻을 수 있기 때문입니다. 다음 예제에서는 불균형 데이터셋으로 로지스틱 회귀 분류기를 학습하고 scikit-learn의 roc_curve으로 곡선을 계산합니다.

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}")

모델의 AUC는 0.963입니다. 임계값이 0.44일 때 양성의 82%를 찾고 FPR은 0.01입니다. 재현율을 95%로 높이려면 임계값을 0.02로 낮춰야 하며, 이때 FPR은 0.26으로 급증합니다. 양성 130개와 음성 1,120개로 구성된 이 테스트 분할에서는 양성을 18개 더 찾아내는 대가로 오경보가 279건 더 발생합니다.

운영 지점 선택#

곡선은 각 임계값에 따른 비용을 보여주며, 애플리케이션에서 어느 정도의 비용을 감수할 수 있는지 결정합니다.

  • 의료 선별 검사: 종양을 놓치는 비용은 후속 검사보다 훨씬 크므로, 선별 검사 도구는 참양성률이 높은 지점에서 작동하며 영상의학 전문의가 검토할 거짓양성을 더 많이 허용합니다.
  • 사기 탐지: 합법적인 결제를 차단하면 고객이 불편을 겪으므로, 은행은 대부분의 사기를 찾아내면서 검토팀과 고객이 감당할 수 있는 수준으로 FPR을 억제하는 지점을 선택합니다.
  • 비용이 동일한 경우: 두 오류의 비용이 같으면 TPR에서 FPR을 뺀 Youden의 J 통계량으로 대각선에서 가장 멀리 떨어진 지점을 선택합니다.

Ultralytics YOLO26 분류 모델은 results[0].probs.data에서 각 클래스의 확률을 반환합니다. 이는 ROC 분석에 필요한 연속 점수이므로, 레이블이 지정된 검증 세트에서 한 클래스의 확률을 수집하면 해당 클래스의 일대다 ROC 곡선을 얻고 배포 비용에 맞는 임계값을 선택할 수 있습니다.

정밀도-재현율 곡선은 TPR과 FPR 대신 정밀도와 재현율을 표시합니다. TPR과 FPR은 각각 클래스 하나를 기준으로 계산되므로 양성의 비율이 낮아져도 ROC 곡선은 그대로지만 정밀도는 낮아집니다. 사기 선별 검사나 이상 탐지처럼 양성이 드문 경우 FPR이 낮아도 참 탐지보다 오경보가 더 많을 수 있습니다. 불균형 데이터셋을 다룬 PLOS ONE 연구에서는 이런 상황에서 정밀도-재현율 그래프가 더 많은 정보를 제공한다고 밝혔습니다. 객체 탐지를 정밀도-재현율 곡선과 평균 정밀도(mAP)로 평가하는 이유도 이와 관련이 있습니다. 참음성으로 간주될 수 있는 배경 영역은 범위가 한정되지 않아 FPR의 분모가 고정되어 있지 않습니다.

  • 정확도 및 F1 점수: 하나의 임계값에서 측정하는 단일 수치인 반면, ROC 곡선과 AUC는 모든 임계값을 요약합니다.
  • 클래스가 많은 이미지 분류: 각 클래스에 일대다 ROC 곡선을 적용하며, 클래스별 AUC를 거시 평균 또는 클래스 비율로 가중한 점수로 평균냅니다. scikit-learn의 roc_auc_score은 이를 multi_class="ovr"로 계산합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요