Haru's 개발 블로그

[NLP] Recall / Precision / F1-score and AP(Average Precision) or AUC(Area Under the Curve)에 정의와 예시 본문

머신러닝 & 딥러닝/NLP(자연어 처리)

[NLP] Recall / Precision / F1-score and AP(Average Precision) or AUC(Area Under the Curve)에 정의와 예시

Haru_29 2023. 8. 26. 20:45

Recall / Precision / F1-score

 

Recall(재현율)은 실제로 긍정인 데이터 중 긍정으로 예측한 비율을 말합니다. 오차 행렬을 기준으로 재현율은 TP / (FN + TP)으로 계산할 수 있습니다.

예시 : 실제 감염된 사람은 7명인데 진단키트로 6명을 잡아낼때, 재현율은 6/7입니다.


Precision(정밀도)은 예측을 긍정으로 한 데이터 중 실제로 긍정인 비율을 말합니다. 오차 행렬을 기준으로 정밀도는 TP / (FP + TP)으로 계산할 수 있습니다.

예시 : 코로나 진단키트로 8명이 나왔을 때, 실제로 확진판정을 받은 사람이 6명이라면 정밀도는 6/8입니다. 

F1-score은 정밀도와 재현율 한 쪽에 치우치지 않고 둘 다 균형을 이루는 것을 나타낸 것입니다. F1은 (2 * precision * recall) / (precision + recall)으로 계산할 수 있습니다.

주로 분류 클래스 간 데이터가 심각한 불균형을 이루는 경우에 사용합니다.

 

AP(Average Precision) or AUC(Area Under the Curve)

AP는 인식 알고리즘의 성능을 하나의 값으로 표현한 것으로 precision-recall 곡선에서 그래프 선 아래 쪽의 면적으로 계산이 됩니다. 기존의 precision-recall 곡선은 어떤 알고리즘의 성능을 전반적으로 파악하기에는 좋으나 서로 다른 두 알고리즘의 성능을 정량적으로 비교하는데는 어려움이 있어서 이를 해결하기 위하여 나온 개념이 AP입니다. 기본적으로 AP가 높으면 높을수록 그 알고리즘은 성능이 전체적으로 우수합니다. AP가 1로 나오는 완벽하게 탐지가 가능한 모델이지만 현실적으로는 완벽하게 예측하는 것은 불가능하기 때문에 1에 가까이 나오는 것을 목표로 합니다.

출처 : https://github.com/boost-devs/ai-tech-interview/blob/main/answers/2-machine-learning.md



AUC는 ROC 곡선의 넓이를 말합니다. ROC는 FPR(False Positive Rate)가 변할 때 TPR(True Positive Rate)가 어떻게 변하는지를 나타내는 곡선을 말합니다. 여기서 FPR이란 FP / (FP + TN)이고, TPR은 TP / (FN + TP)으로 재현율을 말합니다. FPR은 분류 결정 임계값을 변경함으로서 변경이 가능한데 그렇게 임계값을 움직이면서 나오는 FPR과 TPR을 각각 x와 y 좌표로 두고 그린 곡선이 ROC입니다. AUC가 높을수록 즉, AUC가 왼쪽 위로 휘어질수록 좋은 성능이 나온다고 판단합니다. 즉, TPR이 높고 FPR이 낮을수록 예측 오류는 낮아지기 때문에 성능이 잘 나온다 볼 수 있습니다. 즉, 성능 평가에 있어서 수치적인 기준이 될 수 있는 값으로, 1에 가까울수록 그래프가 좌상단에 근접하게 되므로 좋은 모델이라고 할 수 있다.

Comments