ROC 곡선

From CS Wiki
Revision as of 14:55, 20 October 2024 by 핵톤 (talk | contribs)

Receiver Operating Characteristic; Receiver Operating Characteristic Curve

ROC 곡선은 분류 모델의 성능을 평가하는데 사용되는 도구로, 주로 이진 분류 문제에서 모델이 얼마나 잘 분류하는지 시각적으로 보여준다. ROC 곡선은 다양한 임계값에서 모델의 민감도(양성 탐지율)거짓 양성 비율 간의 관계를 나타낸다.

ROC 곡선의 구성 요소

  • 민감도: 실제 양성인 샘플 중에서 모델이 올바르게 양성으로 예측한 비율이다.
    • TPR = TP / TP + FN
    • TP(True Positive): 실제로 양성인 경우를 양성으로 예측한 경우
    • FN(False Negative): 실제로 양성인 경우를 음성으로 예측한 경우
    • False Positive Rate (FPR): 실제로 음성인 샘플 중에서 모델이 잘못 양성으로 예측한 비율
  • 거짓 양성 비율 (1 - 특이도): 실제 음성인 샘플 중에서 양성으로 잘못 예측한 비율이다.
    • FPR = FP / (FP + TN)
    • FP(False Positive): 실제로 음성인 경우를 양성으로 예측한 경우
    • TN(True Negative): 실제로 음성인 경우를 음성으로 예측한 경우

ROC 곡선 그리기

실제론 이것보단 울퉁불퉁 하다. ROC 곡선은 모델의 임계값(Threshold)을 조정하면서 True Positive Rate와 False Positive Rate의 변화를 시각화한다. 임계값을 다르게 설정함에 따라 모델의 성능이 달라지기 때문에, 여러 임계값에서 TPR과 FPR을 계산하여 그래프를 그린다.

  • x축: False Positive Rate(FPR)
    • = 1 - Specificity
  • y축: True Positive Rate(TPR)
    • = Sensitivity, Recall

임계값이 1에 가까워질수록 모델은 대부분의 샘플을 음성으로 예측할 것이다. 예를 들어 100%의 확률을 임계값으로 한다면 양성으로 예측할 모델이 거의 없다. 99%도 마찬가지다. 90% 이상의 정확도를 요구해도 상당히 낮은 비율만 양성으로 예측할 것이다. 다만 이런 기춘치가 80, 70으로 내려갈 수록 양성 예측률이 높아진다.

그리고 임계값이 0에 가까워질수록 대부분의 샘플을 양성으로 예측하게 된다. ROC 곡선은 임계값이 변화할 때 모델의 성능이 어떻게 변화하는지 보여준다.

데이터 예시

실제 값 (정답) 모델의 예측 확률 (양성일 확률)
양성 (1) 0.95
음성 (0) 0.6
양성 (1) 0.8
음성 (0) 0.3
음성 (0) 0.2
양성 (1) 0.7
양성 (1) 0.85
음성 (0) 0.1

임계값 변화에 따른 예측 결과:

  • 임계값이 0.9일 때:
    • 예측 확률이 0.9 이상인 경우만 양성으로 예측.
    • 이 경우, 0.95에 해당하는 첫 번째 샘플만 양성으로 예측되고 나머지는 모두 음성으로 예측됨.
    • True Positive (TP): 1건, False Positive (FP): 0건, False Negative (FN): 3건, True Negative (TN): 4건.
  • 임계값이 0.5일 때:
    • 예측 확률이 0.5 이상이면 양성으로 예측.
    • 이 경우, 0.60, 0.80, 0.70, 0.85를 가진 샘플도 양성으로 예측.
    • TP: 4건, FP: 1건, FN: 0건, TN: 3건.
  • 임계값이 0.1일 때:
    • 거의 모든 샘플이 양성으로 예측됨. (예측 확률이 0.1보다 크므로 대부분 양성으로 분류됨)
    • TP: 4건, FP: 3건, FN: 0건, TN: 0건.

ROC 곡선 그리기:

이 데이터들을 바탕으로 각각의 임계값에서 True Positive Rate (TPR)와 False Positive Rate (FPR)을 계산해 ROC 곡선을 그린다.

  • 임계값이 0.9일 때: TPR = 0.25, FPR = 0
  • 임계값이 0.5일 때: TPR = 1, FPR = 0.25
  • 임계값이 0.1일 때: TPR = 1, FPR = 0.75

ROC 곡선은 FPR이 증가하면서 TPR도 증가하는 관계를 보여주며, 이를 통해 최적의 임계값을 선택할 수 있게 된다.

이런 방식으로 임계값이 높아질수록 모델은 엄격하게 양성을 예측하므로 음성 예측이 늘어나고, 임계값이 낮아질수록 양성 예측이 많아지게 된다.

최적의 임계치 선택

360x360픽셀

위와 같은 그래프가 나왔을 때

  • 거짓 양성이 나왔을 때 비용이 많이 드는 경우, TPR이 다소 낮더라도 A 지점에서처럼 더 낮은 FPR을 제공하는 임곗값을 선택한다.
  • 반대로 거짓 양성이 비용이 적게 들고 거짓 음성이 비용이 많이 든다면 포인트 C의 임곗값을 선택하여 TPR을 최대화하는 것이 바람직할 수 있다.
  • 비용이 거의 동일하다면 B 포인트가 가장 적합하다. 이와 같이 그래프를 통해 TPR과 FPR 사이의 최적의 균형을 취할 수 있다.

AUC

이론적으로 완벽한 모델의 ROC Area Under the Curve

ROC 곡선 아래의 면적인 AUC(Area Under the Curve)는 모델의 분류 성능을 수치화한 값으로, 0과 1 사이의 값을 가진다. AUC 값은 다음과 같이 해석할 수 있다:

  • AUC = 1: 완벽한 분류 모델
  • AUC = 0.5: 무작위 추측과 동일한 성능
  • AUC < 0.5: 성능이 무작위 추측보다 나쁨

일반적으로, AUC 값이 0.7 이상이면 모델이 좋은 성능을 가진다고 평가한다.

ROC 곡선이 유용한 이유

ROC 곡선은 모델의 성능을 임계값의 변화에 따라 시각적으로 보여주기 때문에, 분류 임계값을 설정하는 데 중요한 정보를 제공한다. 특히, 클래스가 불균형한 데이터셋에서도 성능을 평가할 수 있는 장점이 있다. Precision-Recall 곡선과 함께 사용하면 모델의 성능을 더욱 정확하게 분석할 수 있다.