최종 업데이트 07:21
소개 검색
SEOUL AI PRESS

AI와 기술을, 사실부터

강좌 강좌

정밀도와 재현율: 분류 모델의 실수를 구분해 읽는 법

Google for Developers

분류 모델이 '잘 맞힌다'는 말은 상황마다 뜻이 다르다. 정밀도와 재현율이라는 두 비율을 이해하면 모델이 어떤 종류의 실수를 하는지 구분해서 읽을 수 있다.

한 문장으로 이해하기

정밀도(precision)는 모델이 양성이라고 예측한 것 가운데 실제로 양성인 비율이고, 재현율(recall)은 실제 양성 가운데 모델이 양성으로 맞게 찾아낸 비율이다.

용어부터 정리하자. 분류 모델은 입력을 양성(positive, 찾으려는 것)과 음성(negative, 그 외)으로 나눈다. 스팸 메일 분류라면 스팸이 양성, 정상 메일이 음성이다. 예측 결과는 네 가지로 나뉜다. 스팸을 스팸이라고 하면 진양성(TP), 정상을 정상이라고 하면 진음성(TN)이다. 정상 메일을 스팸이라고 잘못 표시하면 위양성(FP), 스팸을 정상이라고 놓치면 위음성(FN)이다. 즉 앞 글자 T·F는 예측이 맞았는지, 뒤 글자 P·N은 모델이 뭐라고 예측했는지를 뜻한다.

이 강좌는 ‘스팸 메일 분류기’라는 가상 예시 하나로 끝까지 진행한다. 학습을 마치면 ① 두 지표의 공식을 쓰고 계산할 수 있고, ② 두 지표가 흔히 반대로 움직이는 이유를 설명할 수 있으며, ③ 상황에 따라 어느 지표를 우선할지 판단할 수 있다.

왜 필요한가

가장 익숙한 지표는 정확도(accuracy)다. 정확도는 전체 분류 가운데 올바른 분류의 비율로, (TP + TN) ÷ (TP + TN + FP + FN)으로 계산한다.

그런데 데이터가 불균형한 경우, 즉 한쪽 클래스가 훨씬 많은 경우에는 정확도가 오해를 줄 수 있다. 가상 예시로, 스팸이 전체 메일의 1%뿐이라면 모든 메일을 ‘정상’이라고만 답하는 모델도 정확도가 99%가 된다. 스팸을 한 통도 잡지 못하는데도 수치는 훌륭해 보인다.

또한 두 종류의 실수는 비용이 다를 수 있다. 정상 메일을 스팸함에 넣는 것(FP)과 스팸을 받은 편지함에 넘기는 것(FN) 중 무엇이 더 해로운지는 서비스 목적에 따라 다르다. 정밀도와 재현율은 서로 다른 분모를 기준으로, FP와 FN이 각각 얼마나 비율에 반영되는지를 보여 준다.

어떻게 이루어지는가

재현율은 진양성률(TPR)이라고도 하며, 실제 양성 가운데 양성으로 올바르게 분류된 비율이다.

  1. 실제 스팸 전체(TP + FN)를 센다.
  2. 그중 모델이 스팸으로 맞게 분류한 것(TP)을 센다.
  3. TP ÷ (TP + FN)을 계산한다.

FN이 줄수록 재현율이 오른다. 즉 재현율이 높으면 실제 스팸을 덜 놓친다.

정밀도는 모델이 양성으로 분류한 것 가운데 실제 양성인 비율이다.

  1. 모델이 스팸이라고 분류한 메일 전체(TP + FP)를 센다.
  2. 그중 진짜 스팸(TP)을 센다.
  3. TP ÷ (TP + FP)를 계산한다.

FP가 줄수록 정밀도가 오른다. 즉 정밀도가 높으면 스팸 표시가 실제 스팸일 가능성이 높다.

분류 임계값(threshold, 양성으로 판정하는 기준선)을 높이면 일반적으로 FP는 줄고 FN은 늘어난다. 낮추면 반대 경향이 나타난다. 이 때문에 정밀도와 재현율은 흔히 한쪽이 좋아질 때 다른 쪽이 나빠지는 관계를 보인다. 다만 이는 일반적 경향이지 모든 경우에 반드시 성립하는 법칙은 아니다.

하나의 예시로 따라가기

가상 예시: 스팸 분류기가 메일 100통을 처리했고, 결과가 다음과 같다고 하자.

  • TP(스팸→스팸): 40통
  • TN(정상→정상): 50통
  • FP(정상→스팸): 5통
  • FN(스팸→정상): 5통

정확도 = (40 + 50) ÷ 100 = 90%. 재현율 = 40 ÷ (40 + 5) ≈ 0.89. 실제 스팸 45통 중 40통을 잡았고 5통은 받은 편지함으로 넘어갔다. 정밀도 = 40 ÷ (40 + 5) ≈ 0.89. 스팸으로 표시된 45통 중 40통이 진짜 스팸이었다. 이 예시에서는 우연히 두 값이 같다.

이제 학습용으로 설정한 가상 수치로 임계값을 높인 상황을 보자. FP가 1통으로 줄고 FN이 10통으로 늘었다고 가정하면, 재현율 = 35 ÷ 45 ≈ 0.78로 내려가고 정밀도 = 35 ÷ 36 ≈ 0.97로 올라간다. 임계값 조정에 따라 두 지표가 반대로 움직이는 경향을 확인할 수 있다.

언제 쓰고 언제 쓰지 않는가

같은 스팸 분류기라도 운영 목표에 따라 우선할 지표가 달라진다. 스팸이 받은 편지함에 섞이는 것(FN)의 비용이 더 크다면 재현율을 우선해 임계값을 낮추는 방향을 고려할 수 있다. 반대로 중요한 정상 메일이 스팸함으로 사라지는 것(FP)이 특히 해롭다면, 양성 예측의 정확성이 중요하므로 정밀도를 우선할 수 있다.

정확도는 데이터가 균형 잡혀 있을 때 대략적인 품질 신호가 될 수 있지만, 데이터가 불균형하거나 두 오류의 비용이 다르면 정확도만으로 평가하지 말고 정밀도·재현율 같은 지표를 함께 봐야 한다.

주의점도 있다. 첫째, 이 지표들은 하나의 고정된 임계값에서 계산되므로 임계값이 달라지면 값도 달라진다. 둘째, 실제 양성이 극히 적으면 정밀도가 주는 정보의 의미와 유용성이 낮아질 수 있다. 셋째, 모델이 양성 예측을 하나도 하지 않아 TP와 FP가 모두 0이면 정밀도의 분모가 0이 되어 결과가 NaN(숫자 아님)으로 나타날 수 있다.

핵심 정리와 확인문제

지표공식올라가는 조건우선 상황
정확도(TP+TN) ÷ 전체FP·FN 모두 감소균형 데이터에서 대략적 신호, 다른 지표와 함께 사용
재현율TP ÷ (TP+FN)FN 감소FN 비용이 클 때
정밀도TP ÷ (TP+FP)FP 감소양성 예측의 정확성이 중요할 때

확인문제 1. (가상 예시) 스팸 분류기의 결과가 TP=8, TN=80, FP=4, FN=2일 때 재현율을 구하시오.

정답: 재현율 = TP ÷ (TP + FN) = 8 ÷ (8 + 2) = 0.80.

해설: 재현율의 분모는 실제 스팸 전체(TP + FN)다. 실제 스팸 10통 가운데 8통을 찾아냈다는 뜻이다.

확인문제 2. 같은 결과(TP=8, TN=80, FP=4, FN=2)에서 정밀도를 구하시오.

정답: 정밀도 = TP ÷ (TP + FP) = 8 ÷ (8 + 4) ≈ 0.67.

해설: 정밀도의 분모는 모델이 스팸으로 분류한 전체(TP + FP)다. 스팸으로 표시된 12통 가운데 8통만 진짜 스팸이었다는 뜻이다.

확인문제 3. (가상 예시) 이 스팸 분류기를 업무용 메일 서비스에 적용하려 한다. 계약서 같은 중요한 정상 메일이 스팸함으로 들어가면 큰 문제가 되고, 스팸 몇 통이 받은 편지함에 섞이는 것은 감수할 수 있다. 어느 지표를 우선해야 하는가?

정답: 정밀도를 우선해야 한다.

해설: 정상 메일을 스팸으로 보내는 실수(FP)의 비용이 크고 양성 예측의 정확성이 중요하므로, 스팸을 일부 놓치더라도 FP를 줄이는 방향이 낫다.

참고자료