[Classification] Evaluation Metric

AI 개발자 웅이·2022년 11월 16일
0

Machine Learning

목록 보기
1/1

Confusion Matrix

오차행렬(confusion matrix)은 학습된 모델이 얼마나 혼동하고(confused) 있는지 보여주는 지표로, 이진 분류의 예측 오류가 얼마인지, 어떤 유형으로 발생하고 있는지를 나타낸다. 오차 행렬은 실제 클래스 값과 예측 클래스 값을 기준으로 4분면 행렬에 어떠한 유형으로 예측되는지 보여준다.

아래 표는 오차 행렬과 평가 지표를 도식화한 것이다.

  • True Positive(TP): 실제 클래스 값이 긍정이고 긍정으로 잘 예측한 경우
  • False Positive(FP): 실제 클래스 값이 부정인데 긍정으로 잘못 예측한 경우
  • True Negative(TN): 실제 클래스 값이 부정이고 부정으로 잘 예측한 경우
  • False Negative(FN): 실제 클래스 값이 긍정인데 부정으로 잘못 예측한 경우

Accuracy

정확도(accuracy)는 예측 레이블이 실제 레이블과 얼마나 같은지를 판단하는 지표이다.

accuracy
= 예측 레이블과 실제 레이블이 동일한 데이터 건 수/전체 데이터 수
= (TP + TN) / (TP + FP + TN + FN)

일반적으로 불균형한 레이블을 갖는 데이터에서는 매우 적은 수의 레이블을 positive로 설정해서 1을 부여하고 나머지는 negative로 설정해서 0을 부여한다. 불균형한 이진 분류 데이터셋에서는 positive 데이터 건수 가 매우 적기 때문에 학습 모델이 negative로만 예측해도 높은 정확도를 얻을 수 있다. 즉, 불균형한 데이터셋에 대해서는 정확도만으로 positive 예측 성능을 판단하기에는 무리가 있다. 그래서 나온 평가 지표가 정밀도(precision)과 재현율(recall)이다.

Precision & Recall

정밀도(precision)와 재현율(recall, sensitivity, true positive rate)은 positive 예측 성능에 더 초점을 맞춘 평가 지표이다. 정밀도는 예측을 positive로 한 데이터 중에 실제 positive 데이터가 얼마나 존재하는 지를 나타낸다. 그리고 재현율은 실제 positive 데이터 중에 positive로 예측한 비율을 나타낸다.

precision = TP / (FP + TP)
recall = TP / (FN + TP)

정밀도와 재현율은 예측 상황에 따라서 중요도가 달라진다.

  • 정밀도가 상대적으로 더 중요한 지표인 경우: 실제 negative인 데이터를 positive로 잘못 예측하면 큰 문제가 발생하는 경우
  • 재현율이 상대적으로 더 중요한 지표인 경우: 실제 positive인 데이터를 negative로 잘못 예측하면 큰 문제가 발생하는 경우

precision, recall trade-off

정밀도와 재현율은 상호 보완적인 지표이기 때문에, 어느 한 쪽을 강제로 높이면 다른 하나의 수치는 떨어지기 쉽다. 이를 정밀도, 재현율의 trade-off라고 한다. 일반적으로 이진 분류에서는 개별 레이블별로 정답일 확률을 구하고, 50% 이상인 레이블을 정답으로 결정한다. 여기서 50%라는 기준을 threshold라고 하며, 이것에 따라 precision과 recall의 수치를 조절할 수 있다.

threshold가 낮아지면 재현율이 높아진다. 그 이유는 threshold가 낮아지면 positive로 예측할 확률이 높아지기 때문에, 실제 positive인 데이터를 positive로 예측하는 경우가 많아지고 negative로 예측하는 경우가 줄어들기 때문이다. 반대 이유로 threshold가 높아지면 재현율은 낮아진다(negative라고 예측하는 경우가 많아진다). 또한, threshold가 높아지면 정밀도가 높아진다. 그 이유는 threshold가 높아지면 positive일 확률이 높은 경우만 positive로 예측하기 때문에 확실한 경우에만 positive로 예측하기 떄문이다(TP와 FP인 경우가 모두 줄어들지만, FP가 더 많이 줄어들기 때문이다).

이처럼 threshold로 precision과 recall의 수치를 조절할 수 있기 때문에, 문제 상황에 맞게 적당한 threshold를 찾으면 될 것이다. 하지만 precision과 recall이 너무 한 쪽으로 치우치지는 않는 것이 좋기 때문에, 이를 평가하는 지표인 F1 score로 함께 고려한다.

F1 score

F1 score은 정밀도와 재현율을 결합한 지표이다. F1 스코어는 어느 한 쪽으로 치우치지 않는 수치를 나타낼 때 상대적으로 높은 값을 갖는다.

F1 score
= 2 / (1/recall + 1/precision)
= 2(precision * recall) / (precision + recall)

ROC curve & AUC

ROC curve는 FPR(False positive rate)이 변할 떄 TPR(true positive rate, recall)이 어떻게 변하는지를 나타내는 곡선이다. TPR에 대응하는 지표로 TNR(True negative rate)이라고 불리는 특이성(specificity)가 있다. FPR은 1 - TNR로 계산할 수 있다.

FPR = FP / (FP + TN) = 1 - TNR

아래 그림은 ROC curve를 나타낸 것이다.

threshold를 조절하여 FPR의 값에 변화를 줄 수 있다. threshold가 1이면 positive로 예측하는 경우가 없기 때문에, TPR, FPR은 모두 0이 된다. 반면에 threshold가 0이면 negative로 예측하는 경우가 없기 때문에, TPR, FPR은 모두 1이 된다. ROC curve가 가운데 직선에 가까울수록 성능이 떨어지고, 멀어질수록 성능이 뛰어나다고 판단한다. 이것을 수치화한 것이 AUC(Area under curve)이다. AUC는 ROC curve 곡선의 밑의 면적을 구한 것으로 1에 가까울수록 좋은 수치이다. AUC 수치가 커지려면 FPR이 작은 상태에서 큰 TPR을 얻을 수 있어야 한다.

reference

confusion matrix
precision, recall trade-off
ROC curve

profile
저는 AI 개발자 '웅'입니다. AI 연구 및 개발 관련 잡다한 내용을 다룹니다 :)

0개의 댓글