직장에서 업무를 진행하던 중, 우연찮은 기회가 닿아 머신러닝/딥러닝 관련 TFT에 들어가게 되었다. 평소 관심은 있었지만 깊이 있는 공부가 부족했고 대화하는데 자꾸 귀에서 걸리는 단어들이 많아 이참에 하나씩 정리를 해보려 한다. 

 

 첫 번째로 정리해볼 단어는 Precision, Recall 그리고 Accuracy이다. 흔히 말하는 머신러닝/딥러닝 모델 활용 시 평가를 위해 사용하는 단어로 Pattern recognition이나 Classification에서 사용된다.

 본격적으로 Precision, Recall 그리고 Accuracy에 대해 이해하기 전에 간단한 예시를 들고 가려고 한다. 동전의 앞면과 뒷면을 구분하는 인공지능 모델이 있다고 할 때, 인공지능 모델이 내놓은 답에 대해서 총 4가지로 구분 지을 수 있다.

 

- 첫번째 : 실제 앞면인데 인공지능도 앞면(Positive)이라고 답했을 때 = True Positive

- 두번째 : 실제 뒷면인데 인공지능은 앞면(Positive)이라고 답했을 때 = False Positive

- 세번째 : 실제 앞면인데 인공지능은 뒷면(Negative)이라고 답했을 때 = False Negative

- 네번째 : 실제 뒷면인데 인공지능도 뒷면(Negative)이라고 답했을 때 = True Negative

 

※ 실제 값(Ground True)과 모델의 결과값이 일치하면 True, 불일치하면 False
※ 모델의 결과값이 긍정이면 Positive, 부정이면 Negative로 이해하면 좀 더 편할 것이다.

 

 

 

1) Precision(정확성)


 그렇다면 위의 TP/FP/FN/TN에서 Precision은 어떤 부분에 해당할까?

의미로 보면 모델이 앞면이라고 답한 것들 중에서 실제 앞면인 경우의 비율이다.

즉, Positive로 답한 것 중 실제 True Positive의 비율

 

                  TP (긍정 중에서 실제 정답)

Precision = -------

               TP+FP (긍정으로 답한 모든 것)

 

Precision이 높을수록 모델이 갖는 정확성은 높으나, 해당 모델이 놓친 부분 (Negative)에서도 실제 앞면이 많을 경우 좋은 모델이라 표현하기 어렵다. 따라서 Recall이라는 항목도 함께 살펴보아야 한다.

 

 

 

2) Recall(재현율)


 Recall의 의미는 실제 앞면 중에서 모델이 앞면이라고 예측한 경우의 비율이다. 

즉, True 중에서 모델의 True Positive의 비율

 

              TP (긍정 중에서 실제 정답)

Recall = -------

            TP+FN (실제 정답=Ground Truth)

 

따라서, 대부분의 분류 모델에서는 모델의 성능을 측정하기 위해 Precision과 Recall을 지표로 사용한다. 

 

 

 

3) Accuracy


 Accuracy는 주어진 모든 데이터에서(모든 앞면과 뒷면) 모델이 앞면, 뒷면임을 맞춘 것(=TP+TN)의 비율이다.

 

                TP+TN (모델이 실제로 맞춘 모든 데이터)

Accuracy = -------

                TP+FN+FP+TN (모든 데이터)

 

이는 Precision과 Recall 모두 TP에 대해 다루는 한계에 비해 Accuracy에서는 TN( 뒷면을 뒷면이라고 예측)에 대한 부분까지 고려하게 됩니다. 

 

 

 

 

*Reference

- 나무 위키(Precision & Recall) https://en.wikipedia.org/wiki/Precision_and_recall

 

 

부족한 글 읽어주셔서 감사합니다.

 

 

'프로그래밍 > 머신러닝&딥러닝' 카테고리의 다른 글

Epoch, batch, iteration  (0) 2024.03.24
(용어 정리) Data Annotation(Labeling)  (0) 2022.03.07

+ Recent posts