[Metric] 2. ROC Curve
ROC(Receiver Operating Characteristic) Curve
-
ROC Curve 는 다양한 threshold 에 대한 이진분류기의 성능을 한번에 표시한 그래프다.
- 이진 분류의 성능은 True Positive Rate(TPR) 와 False Positive Rate(FPR) 두 가지를 이용해서 표현하게 된다.
-
다시 Confusion Matrix 를 보자.
- TPR(True Positive Rate)
- Recall 에 해당한다.
- 양성인 케이스에 대해 양성으로 잘 예측한 비율이다.
- TP / (TP+FN)
- TNR(True Negative Rate)
- 특이도(Specificity) 에 해당한다.
- 음성인 케이스에 대해 음성으로 잘 예측한 비율이다.
- FPR(False Positive Rate)
- 1-TNR 이다.
- 음성인 케이스에 대해 양성으로 잘못 예측한 비율(type 1 error)이다.
- ROC Curve 는 좌상단에 붙어있는 커브가 더 좋은 분류기를 의미한다고 생각할 수 있다.
- ROC curve를 잘 이해하기 위해선 세 가지 특성에 대해 파악하는 것이 좋다.
- True Positive Rate 과 False Positive Rate
- ROC Curve 위의 한 점이 의미하는 것은 무엇인가?
- ROC Curve의 휜 정도가 의미하는 것은 무엇인가?
TPR 과 FPR
- False Positive Rate(FPR)와 True Positive Rate(TPR)은 ROC curve에서 각각 x, y축에 표시되는 값을 의미한다.
- 여기서 우리는 FPR 과 TPR 모두 Positive 라는 공통적인 단어가 있음을 발견할 수 있다.
- Positive 의 의미는 모델이 양성(맞다)이라고 판별했다는 의미이다.
- 예를 들어 병원에 환자가 암 검사를 받기 위해 내원했고, 의사(즉, 여기서 모델)가 “환자가 암에 걸렸다”라고 판단한 것이다.
- True 와 False 는 각각 ‘판단을 올바르게 했다’는 것과 ‘판단을 틀리게 했다’는 것을 표현한다. 즉 실제값을 맞췄는지 틀렸는지다.
- 즉, 다시 말해 True Positive 는 실제로 이 사람은 암에 걸려있고, 판단을 암에 걸렸다고 판단한 것이며, False Positive 는 실제로는 암에 걸리지 않았는데도 암에 걸렸다고 잘못 판단한 것을 의미한다.
-
그림으로 True Positive와 False Positive를 확인해보면 다음과 같이 생각할 수 있다.
- 이제 모델에 입각해서 해석해보자. 이 때 모델은 0(False) 과 1(True) 이 라벨인 이진 분류를 수행한다.
- 즉 위 그림에서 0 은 암환자가 아닌 것으로 판정하는 것이고, 1 은 암환자라고 판정하는 것이다.
- 어떤 모델은 모든 데이터에 대해 1 으로 예측한다고 해보자.
- 그렇게 되면 실제 1 인 데이터도 모두 1 로 예측된다. 즉, True Positive Rate 은 높아진다. 왜냐하면 TP 가 증가하기 때문이다.
- 동시에 0 인 데이터도 모두 1 로 예측된다. 즉, False Positive Rate 도 동시에 높아지게 된다.
- 이처럼 모든 데이터를 다 1 로 예측한다는 것은 threshold 가 낮다는 뜻이다.
- 위 그래프에서 TPR 과 FPR 이 동시에 높아지는 방향으로 이동하면 threshold 가 낮아진다.
- 한편, 어떤 모델은 모든 데이터에 대해 0 으로 예측한다.
- 즉 실제 0 인 데이터와 1인 데이터 모두 0 으로 판단하면서 True Positive Rate 과 False Positive Rate 모두 낮아지게 된다.
- 이처럼 모든 데이터를 다 0 으로 판정한다는 것은 threshold 가 높다는 뜻이다.
ROC Curve 위의 점
- threshold 가 변함에 따라서 False Positive Rate(FPR)과 True Positive Rate(TPR)의 값이 바뀐다는 것을 알 수 있다.
- 또 한가지 추가로 알 수 있는 것은 threshold 가 높아지건 낮아지건 FPR 과 TPR 은 어느정도는 비례적으로 함께 커지거나 작아진다는 것을 알 수 있다.
- 따라서 ROC Curve 위의 점이 의미하는 것은 모든 가능한 threshold 별 FPR 과 TPR 을 알아보겠다는 의미를 담고 있다.
- 즉 threshold 를 좌측에 가깝게(낮게) 잡으면 TPR, FPR 모두 높은 상황이고 모든 값이 1 로 분류된 상황이다.
- 반면에 threshold 를 우측에 가깝게(높게) 잡으면 TPR, FPR 모두 낮은 상황이고 모든 값이 0 으로 분류된 상황이다.
ROC Curve 의 휨 정도
- 두 클래스를 더 잘 구별할 수 있다면 ROC Curve 는 좌상단에 더 가까워지게 된다.
-
TPR 은 높으면 좋고 FPR 은 낮으면 좋기 때문이다.
AUC
-
AUC 는 ROC Curve 아래의 면적으로 Area Under the Curve 를 뜻한다.
- 두 클래스를 더 잘 구별할 수 있다면 ROC Curve 가 좌상단에 더 가까워지면서 Curve 아래의 면적은 더 넓어지게 된다.
-
이 면적을 구하는 것이 AUC 다.
- 즉 AUC 를 통해서 TPR 과 FPR 을 복합적으로 평가할 수 있고, AUC 가 커지면 커질수록 이상적인 이진 분류기임을 알 수 있다.
Threshold
- ROC Curve 의 x 축과 y 축인 FPR 과 TPR 은 모두 Positive 로서, 모델이 양성으로 예측한 것 중에서 정답과 오답의 비율이라고 할 수 있다.
- 그렇다면 ROC Curve는 임계값을 어떻게 설정해야 할지 알고 싶을 때 임계값에 대한 정답율(TPR)과 오답율(FPR)의 비율을 보는 곡선이라고 이해할 수 있다.
- 분류 모델에서 임계값을 이동하는 경우는 데이터셋의 클래스가 불균형할 때를 예로 들 수 있다. 클래스가 더 많은 쪽으로 임계값을 이동하여, 클래스 불균형을 해소하고 예측 성능을 높일 수 있다.
댓글 남기기