DL&ML/concept

Measure (Precision, Recall, F1-score, ROC, AUC)

식피두 2021. 3. 11. 15:55

기본적으로 알고 있어야 될 performance measure 들...

1. Precision

Positive라고 예측한 것 중 True Positive 비율

2. Recall (Sensitivity ; True Positvie Rate)

실제로 Positive인 것 중 True Positive 비율

 

threshold 값 변화에 따른

precision/recall curve를 그려서 둘의 변화를 동시에 살펴볼 수도 있다.

3. F1-score

Precision & Recall의 조화 평균

2*p*r/(p+r)

* 조화 평균을 씀으로써 작은 값에 좀 더 weight을 줄 수 있다!

 

일반적으로 precision & recall 사이에는 trade-off 관계가 존재함.

 

문제 상황에 따라서 어떤 지표에 무게를 둘지가 달라진다.

 

만약 아이들에게 성인 영상을 차단해야 하는 시스템에선

precision이 높아야 함. (정상적인 영상을 버리더라도..)

 

만약 가게에서 범인을 찾아 내야 하는 시스템에선

recall이 높아야 함. (잘못 없는 사람을 찾아 내더라도...)

 

이진 분류 모델을 생각할 때, 일반적으로

모델의 출력 확률에 대한 threshold를 높이면

precision이 높아지지만 recall은 낮아질 수 있으며,

모델의 출력 확률에 대한 threshold를 낮추면

precision은 낮아지지만 recall은 높아지게 된다.

 

4. ROC Curve, ROC AUC

Receiver Operating Characteristic ; 이게 뭔소리여?

이진 분류 모델을 비교할 때 자주 쓰이는 지표 중 하나.

 

True Positive Rate(TPR ; recall)과 False Positive Rate(FPR)을

플롯팅해서 그린다.

 

* FPR = 1 - TNR(specificity)

 

TPR(recall)이 높아질 수록 FPR이 높아지는 trade-off가 있다고 함.

평면의 대각선을 가로지르는 지점은 random classifier를 가정했을 때임.

https://en.wikipedia.org/wiki/Receiver_operating_characteristic

 

여기서 커브의 아래 넓이를 계산해서 분류기의 성능을 비교하기도 하는데,

Area Under the Curve(AUC) 라고 부른다.

 

완벽한 분류기는 ROC AUC가 1이 나온다.

완벽한 랜덤 분류기는 0.5가 나옴.

 

그러면,

PR curve(Precision/Recall Curve)는 언제쓰고

ROC curve는 언제 쓰남?

 

PR curve는

positive 클래스가 별로 없는 상황에서

False Negative보다 False Positive에 더 신경을 쓰고 싶을 때 사용하면 되고,

그 외의 상황에선 ROC curve를 쓰란다.

 

이 부분은 좀 더 고민을 해볼 필요가 있을 듯..