ROC 곡선과 AUC를 사용하여 AI/ML에서 분류기 성능을 평가하고, 사기 탐지 및 의료 진단과 같은 작업에서 TPR 대 FPR을 최적화하는 방법을 알아봅니다.
수신기 작동 특성(ROC) 곡선은 이진 분류 모델의 성능을 평가하는 데 사용되는 그래픽 표현입니다. 이진 분류 모델의 성능을 평가하는 데 사용되는 그래픽 표현입니다. 이 곡선은 다양한 분류 임계값에 걸쳐 TPR(정탐률)과 FPR(오탐률) 간의 트레이드 오프를 시각화합니다. 오탐률(FPR) 사이의 균형을 시각화합니다. 머신 러닝 머신 러닝(ML)에서 이 곡선은 모델이 '스팸'과 '스팸이 아닌' 또는 '질병'과 같은 두 가지 클래스를 얼마나 잘 구분할 수 있는지 평가하는 데 기본이 됩니다. "스팸이 아님" 또는 "병든" 대 "건강한". 이러한 비율을 그래프로 표시함으로써 ROC 곡선 는 다음과 같은 단일 수치 메트릭을 넘어 모델의 진단 능력에 대한 포괄적인 시각을 제공합니다. 정확도와 같은 단일 수치 지표를 넘어서는 포괄적인 시각을 제공합니다.
ROC 곡선을 올바르게 해석하려면 축에 표시된 두 가지 메트릭을 이해하는 것이 중요합니다:
이 곡선은 분류기의 신뢰도 임계값을 신뢰 임계값을 0에서 1까지 변경하여 곡선을 생성합니다. ROC 곡선의 각 점은 특정 결정 임계값에 해당하는 민감도/특이도 쌍을 나타냅니다. A 왼쪽 아래에서 오른쪽 위까지의 대각선은 예측 기술이 없는 무작위 분류기(동전 던지기 던지기), 왼쪽 상단 모서리로 가파르게 구부러지는 곡선은 성능이 우수한 모델을 나타냅니다.
ROC 곡선은 다양한 산업에서 의사 결정 임계값을 최적화하는 데 널리 활용됩니다. 모델 배포를 위한 의사 결정 임계값을 최적화하는 데 사용됩니다.
ROC 곡선을 그리려면 최종 클래스뿐만 아니라 양수 클래스에 대한 예측 확률도 필요합니다.
레이블이 필요합니다. 다음 예는 이러한 확률을 추출하는 방법을 보여줍니다.
YOLO11 분류 모델에서
ultralytics 패키지입니다.
from ultralytics import YOLO
# Load a pretrained YOLO11 classification model
model = YOLO("yolo11n-cls.pt")
# Run inference on an image to get prediction results
results = model("path/to/image.jpg")
# Access the probability distribution for all classes
# These scores are necessary inputs for calculating ROC and AUC
probs = results[0].probs.data
print(f"Class probabilities: {probs}")
테스트 데이터 세트에 대해 이러한 확률을 얻으면 다음과 같은 라이브러리를 사용할 수 있습니다. Scikit-learn과 같은 라이브러리를 을 사용하여 곡선을 그리는 데 필요한 FPR 및 TPR 값을 계산할 수 있습니다.
ROC 곡선은 강력한 도구이지만, 관련 평가 개념과 구분하는 것이 도움이 됩니다:
객체 감지와 관련된 작업의 경우 다음과 같은 메트릭이 사용됩니다. 평균 평균 정밀도(mAP) 와 같은 메트릭이 와 같은 메트릭이 일반적으로 사용되지만, 이러한 모델의 기본 분류 구성 요소에는 ROC 곡선이 여전히 적합합니다. 이러한 차이점을 이해하면 개발자가 특정 컴퓨터 비전(CV) 과제에 적합한 메트릭을 선택할 수 있습니다. 올바른 메트릭을 선택할 수 있습니다.