머신러닝분류 모델

TIL - 분류 모델 성능 지표, Precision, Recall, Accuracy

August 03, 2025

thumbnail

배경

머신 러닝을 이용하여 만든 분류 모델이 잘 작동하는 가를 평가하기 위해 지표를 이용한다. 제목에서 설명한 Precision, Recall, Accuracy가 이 지표에 해당한다. 언뜻 통계를 배울 때 봤던 것 같은 기분이 든다. 이 지표가 꽤 헷갈리기 때문에 이번 기회에 제대로 정리해보려고 한다.

혼동행렬

혼동행렬은 위 지표를 구하는 데 필요한 데이터를 시각적으로 보여주는 표이다.

예측값\실제값 True False
True(Positive) TP FP
False(Negative) FN TN

위의 표는 혼동행렬의 예시다. 예측값이 Postive, Negative로 표현된다는 것을 꼭 기억해야할 것 같다.

  • TP: 실제값이 양성일 때, 양성이라 판단
  • FP: 실제값이 음성일 때, 양성이라 판단
  • FN: 실제값이 양성일 때, 음성이라 판단
  • TN: 실제값이 음성일 때, 음성이라 판단

Precision

Precision 은 정밀도라고도 한다. 식은 다음과 같다. Precision=TPTP+FPPrecision = \frac{TP}{TP+FP}

모델이 참이라고 예측한 데이터 중, 실제로 참인 값의 비율을 구한다.

Recall

Recall은 재현율이라고도 한다. 식은 다음과 같다. Recall=TPTP+FNRecall = \frac{TP}{TP+FN}

실제로 참인 값들 중에, 참이라고 판단된 값의 비율을 구한다.

Accuracy

Accuracy 는 정확도라고도 한다. 식은 다음과 같다. Accuracy=TP+TNTP+FP+FN+TNAccuracy = \frac{TP + TN}{TP + FP + FN + TN}

위의 두 지표와는 다르게 음성을 잘 분류한 개수도 포함하고 있다. 값이 1에 가까울 수록 좋은 지표다.

F1 Score

Accuray는 구하는 것도 어렵지 않아서 곧잘 사용하는 지표이긴 하나 문제가 있다. 분류 데이터셋 라벨의 비율이 고르지 않으면 한 쪽에 치우쳐지는 점수를 산출하기 때문이다. 이를 어느 정도 바로잡고자 한 지표가 F1 Score 이다.

(F1 Score)=2×11Precision+1Recall=2×Precision×RecallPrecision+Recall(F1\ Score) = 2 \times \frac{1}{ {\frac{1}{{Precision}}}+\frac{1}{Recall}} = 2 \times \frac{Precision \times Recall}{Precision + Recall}

F1 Score를 계산하는 데에는 조화평균을 이용하고 있다. 이는 비중이 큰 데이터에 의한 치우침을 방지하는 목적이 있다.

참고

TIL - 분류 모델 성능 지표, Precision, Recall, Accuracy - ALROCK Blog