0831 PR AUC, ROC AUC

ph
Admin (토론 | 기여)님의 2020년 12월 8일 (화) 10:54 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

웹에 돌아다니는 글 중엔 http://www.chioka.in/differences-between-roc-auc-and-pr-auc/ 이게 제일 나은것 같다.

AUC는 Area under curve로, 일단 curve가 있어야 area가 나오는 것인데, 그 커브를 어떻게 그리느냐가 둘의 차이. 식은 그냥 외우면 되는 것인데 한방에 감이 오는게 없나 찾아보다가 없어서 그냥 만들었다.

아래와 같이 전체 집합중에 positive, negative가 있다고 하고,

Posineg.png

이중에 positive를 찍었다고 치자. 아래 파란부분이 classifier가 positive라고 찍은 부분이다. 그러면 FN, TP, FP, TN, Recall, Precision은 자동으로 나온다.

Posineg2.png

ROC AUC는 x축이 FPR, y축이 TPR이 된다. Classifier가 내놓은 값의 threshold를 조정함에 따라 파란 부분이 점점 커질텐데, 그때 FPR의 변화에 따른 TPR의 변화를 보는 것이다. 당연히 FPR은 낮을수록 좋고, TPR은 빨리 높아질수록 좋다. threshold가 0까지 내려오면 결국 전체집합이 모두 파란색으로 칠해질 것인데, 이때 FPR은 1 이고, TPR도 1이 된다. ROC AUC의 오른쪽 위 끝점은 그래서 항상 (1,1)이다.

분류기가 아무렇게나(랜덤하게) 그 결과를 낸다고 가정하면, 전체집합에서 P(ositive)와 N(egative)의 비율과 상관없이 ROC AUC는 정확히 0.5가 된다. 문제는, P:N 비율이 그림처럼 1:1이 아닐때이다. P가 극단적으로 적은 상황에서 랜덤하게 pick하면, AUC는 0.5가 똑같이 나오겠지만 False Positive가 너무 많아지는 것이다. 대부분의 detector는 positive가 매우 적은 상황에서 동작해야 하기 때문에, True Negative는 고려하지 않는 새로운 척도를 필요로 한다.

PR AUC는 average precision인데, 이 말은 곧 recall의 변화에 따른 precision들을 다 모아서 평균을 낸다는 뜻이다. 위 그림에서 보는 것처럼 TN을 고려하지 않는다. P가 적은 상황에서 랜덤하게 pick한다면, FP가 TP보다 훨씬 빠르게 증가하기 때문에 AUC는 형편없게 된다. 그리고 recall에 따른 평균이기 때문에 랜덤하게 pick했을 때 기댓값은 0.5가 아니고, 초기 P:N=1:k라고 할 때, $\frac1{1+k}$가 된다.


blog comments powered by Disqus