티스토리 뷰

반응형

안녕하세요 오늘은 딥러닝으로 처리하는 각종 기술 중 이미지에 관련한 평가 방법에 대해 정리하고자 합니다.

그중, classification에서 주로 사용하는 평가방법에 대해 알아보겠습니다.

[Confusion Matrix]

confusion matrix란 아래와 같이 GT(Actual Values) 값과 딥러닝 모델의 예측값(Predicted Values)의 관계 Matrix입니다.

값은 Positive(1)과 Negative(0)으로 구성되어있습니다.

예를 들어, 환자의 암을 예측하는 모델이라고 했을 때

 

실제 환자가 암이고, 예측 결과도 암이면 True Positive(TP)

실제 환자는 암이지만, 예측 결과는 정상이면 False Negative(FN)

실제 환자는 정상이지만, 예측 결과가 암이라면 False Positive(FP)

실제 환자는 정상이고, 예측결과도 정상이면 True Negative(TN)

 

위와 같이 네 개로 상황을 분류할 수 있습니다.

 

자세히 읽어봤다면 규칙을 찾으실 수 있을 텐데요,

모델의 예측 성공여부에 따라 앞이 True/False로 나뉘고

모델의 예측 결과에 따라 뒷부분이 Positive/Negative로 나뉩니다.

이를 잘 이해하시면 각각 TP, FN, FP, TN의 의미를 쉽게 이해할 수 있습니다.

[Recall]

recall은 sensitivity라고도 하며, 한글로는 민감도, 재현율이라고 합니다.

모든 sample중, GT가 True인 것 중에 실제 True로 예측한 비율을 의미합니다. 이를 수식으로 나타내면 다음과 같습니다.

 

Recall = TP / (TP + FN)

 

[Precision]

precision은 한글로 정밀도라고 합니다.

모든 sample중, 모델이 True라고 예측한 것들 중에 실제 GT가 True인 비율을 의미합니다.

recall과 약간 헷갈릴 수 있는데, 평가 기준이 모델의 예측인지 GT인지에 따라 다르다고 생각하면 됩니다.

수식은 다음과 같습니다.

 

Precision = TP / (TP + FP)

 

[Accuracy]

accuracy는 대부분이 이미 알고 있을 텐데요, 한글로 정확도입니다.

모든 sample중, 모델이 예측한 것이 정답인 경우의 비율입니다. 즉 전체 중에서 TP와 TN에 해당한다고 볼 수 있습니다.

수식은 다음과 같습니다.

 

Accuracy = (TP + TN) / (TP + FP + FN + TN)

 

[F1-Score]

Recall과 Precision의 조화 평균을 구해 하나의 값으로 모델 성능을 가늠해 볼 수 있는 지표가 F1-Score입니다.

수식은 다음과 같습니다.

 

F1-Score = 2 * (Recall * Precision) / (Recall + Precision)

 

[예제]

일반적으로 accuracy가 높으면 좋은 모델이라고 생각할 수 있지만, 항상 그렇진 않습니다.

예를 들어, 데이터가 불균형할때(imbalance)의 경우를 보겠습니다.

  Pred True Pred False
GT True 5 100
GT False 10 1000

 

GT를 기준으로 볼 때, True 개수는 105개이지만 False의 개수는 1010개로 약 10배 정도 차이가 납니다.

이럴 때 모델이 대부분의 sample을 False로 예측한다면 정확도는 Acc = (5+1000) / (5+100+10+1000)로 약 90%입니다.

하지만 이 모델이 정말 예측을 잘하는 모델일까요?

 

그렇지 않습니다. 그래서 데이터가 imbalance한 경우에는 accuracy가 큰 의미가 없습니다.

이때의 Precision과 Recall을 확인해 보겠습니다.

 

Recall = 5 / (5+100) = 0.05

Precision = 5 / (5+10) = 0.33

 

둘 다 매우 낮아 모델의 성능이 좋지 않다는 것을 알 수 있습니다.

또한 이 경우의 F1 Score를 계산해보면 2 * (0.05 * 0.33) / (0.05 + 0.33)으로 약 0.08입니다. 

위 F1 Score 값을 보면 단번에 모델의 성능이 좋지 않다는 것을 직관적으로 알 수 있습니다.

 

[정리]

위에서 소개드린 4가지의 평가지표를 통해 단순 분류 모델의 성능을 평가 할 수 있습니다.

다시 한 번 수식을 정리해보면 다음과 같습니다.

 

Recall = TP / (TP + FN)

Precision = TP / (TP + FP)

Accuracy = (TP + TN) / (TP + FP + FN + TN)

F1-Score = 2 * (Recall * Precision) / (Recall + Precision)

 

수식들을 외우기보다는 그 뜻을 이해하면 쉽게 도출할 수 있습니다.

 

이미지 출처: towardsdatascience.com/understanding-confusion-matrix-a9ad42dcfd62

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday