정밀도와 재현율이 헷갈린다면 분모를 먼저 말로 읽어 보세요. 정밀도는 ‘양성이라고 예측한 것’ 중 맞힌 비율이고, 재현율은 ‘실제 양성’ 중 찾아낸 비율입니다. F1은 두 비율의 산술평균이 아니며, F1이 높은 선택이 오류 비용까지 가장 작은 것은 아닙니다. 가상의 메일 1,000건으로 계산부터 선택 기준까지 이어 보겠습니다.
1. 양성 클래스와 표의 방향부터 정합니다
이 실습에서 양성은 스팸, 음성은 정상 메일입니다. 실제 스팸 100건과 정상 메일 900건을 같은 모델로 판정했다고 가정합니다. 시험 기출이나 실제 서비스 실적이 아니라 계산을 위해 만든 사례입니다.
판정 기준 A의 혼동행렬을 두 줄로 적으면 다음과 같습니다. 행은 실제 정답이며, 각 행에서 스팸 판정과 정상 판정을 구분했습니다.
실제 스팸 100건: 스팸 판정 60건 / 정상 판정 40건
실제 정상 900건: 스팸 판정 15건 / 정상 판정 885건
실제 스팸을 스팸으로 찾은 60건이 TP입니다. 정상 메일을 스팸으로 잘못 분류한 15건은 FP, 스팸을 정상으로 놓친 40건은 FN, 정상 메일을 정상으로 분류한 885건은 TN입니다.
TP + FN = 100, FP + TN = 900인지 먼저 검사합니다. 전체 합도 1,000이어야 합니다. 표의 왼쪽 위가 언제나 TP라고 외우면 행·열 순서나 클래스 순서가 바뀐 문제에서 틀리기 쉽습니다.
2. 정밀도와 재현율은 같은 60건을 다르게 나눕니다
기준 A가 스팸으로 판정한 메일은 60 + 15 = 75건입니다. 그중 실제 스팸은 60건이므로 정밀도는 다음과 같습니다.
정밀도 = TP / (TP + FP)
= 60 / 75 = 0.8 = 80%
‘스팸으로 판정한 75건 중 얼마나 맞았는가’가 질문입니다. 전체 메일 1,000건이나 실제 스팸 100건을 분모에 넣지 않습니다.
재현율은 실제 스팸 100건을 기준으로 계산합니다. 이 중 모델이 찾아낸 스팸은 60건입니다.
재현율 = TP / (TP + FN)
= 60 / 100 = 0.6 = 60%
따라서 ‘스팸 판정의 80%가 맞았다’와 ‘전체 스팸의 60%를 찾았다’는 동시에 참입니다. 나머지 스팸 40건을 놓쳤다는 사실은 정밀도 80%만 읽으면 드러나지 않습니다.
같은 이유로 1 - 정밀도와 거짓 양성률도 다릅니다. 이 예제에서 1 - 정밀도는 15 / 75 = 20%지만, 거짓 양성률은 실제 정상 메일을 분모로 한 15 / 900 ≈ 1.67%입니다. FP가 분자에 있다는 이유만으로 두 비율을 같게 취급하면 안 됩니다.
3. F1은 70%가 아니라 약 68.57%입니다
정밀도 80%와 재현율 60%를 더해 2로 나누면 70%입니다. 하지만 F1은 조화평균이므로 계산식이 다릅니다.
F1 = 2 × 정밀도 × 재현율 / (정밀도 + 재현율)
= 2 × 0.8 × 0.6 / (0.8 + 0.6)
= 24 / 35 ≈ 0.6857
혼동행렬의 개수로 바로 계산하면 소수 반올림을 중간에 넣지 않아도 됩니다.
F1 = 2TP / (2TP + FP + FN)
= 120 / (120 + 15 + 40)
= 120 / 175 ≈ 68.57%
두 방식의 결과가 같은지 대조하면 계산 실수를 찾기 쉽습니다. 퍼센트와 소수를 섞지 말고 마지막에만 반올림하세요.
F1에는 TN이 직접 들어가지 않습니다. 정상 메일을 많이 맞혔다는 정보와 스팸을 찾는 능력을 하나의 숫자로 모두 설명하는 지표는 아니라는 뜻입니다. 양성 클래스를 바꾸면 TP·FP·FN도 다시 정해야 합니다.

4. 정확도 90%인데 스팸을 하나도 못 찾을 수 있습니다
기준 A의 정확도는 (60 + 885) / 1,000 = 94.5%입니다. 비교 대상으로 모든 메일을 정상이라고 답하는 규칙을 생각해 보겠습니다.
이 규칙은 TP = 0, FP = 0, FN = 100, TN = 900입니다. 정확도는 90%지만 재현율은 0%입니다. 스팸을 찾는 목적에서는 실제 양성을 하나도 발견하지 못합니다.
양성으로 예측한 건수가 없으므로 정밀도 공식은 0 / 0이 되어 정의되지 않습니다. 반면 이 사례의 F1은 개수식에서 0 / 100 = 0입니다. 실제 양성도 예측 양성도 전혀 없는 별도 사례라면 F1의 분모까지 0이 됩니다.
평가 도구가 이런 상황을 0이나 다른 값으로 표시하는 것은 도구의 처리 규칙입니다. 계산식이 원래부터 정의된다는 의미는 아닙니다. 문제에서 제시한 규칙이나 도구의 설정을 먼저 구분해야 합니다.
5. 기준을 낮추면 재현율과 F1이 함께 좋아질까요?
같은 메일과 같은 예측 점수에서 스팸 판정 임계값을 낮춘 기준 B를 가정합니다. A에서 정상으로 처리했던 메일 중 실제 스팸 20건과 정상 메일 65건이 추가로 스팸 판정을 받았습니다.
기준 B: TP = 80, FP = 80, FN = 20, TN = 820
정밀도 = 80 / 160 = 50%
재현율 = 80 / 100 = 80%
F1 = 160 / 260 ≈ 61.54%
정확도 = 900 / 1,000 = 90%
A보다 실제 스팸을 20건 더 찾았지만 정상 메일을 스팸으로 분류한 횟수도 늘었습니다. 이 숫자에서는 재현율은 B가 높고, 정밀도와 F1은 A가 높습니다. 임계값을 낮췄다는 이유만으로 F1이 개선된다고 판단할 수 없습니다.
추가된 85건의 구성까지 적어 둔 이유는 비교 조건을 고정하기 위해서입니다. 서로 다른 데이터에서 나온 두 혼동행렬을 임계값 변화 하나의 효과처럼 비교하면 안 됩니다.
6. F1이 높은 선택과 비용이 작은 선택을 나눕니다
정상 메일을 스팸으로 분류한 FP 한 건의 비용을 1, 스팸을 놓친 FN 한 건의 비용을 5로 두는 가상 조건을 추가해 보겠습니다. 이 숫자는 특정 서비스의 실제 손실이나 권장 비율이 아닙니다.
총 오류 비용 = FP × 1 + FN × 5
기준 A: 15 + 40 × 5 = 215
기준 B: 80 + 20 × 5 = 180
F1은 A가 더 높지만, 이 비용 조건에서는 B가 더 작습니다. F1은 사용자가 정한 FP·FN 비용을 자동으로 반영하지 않습니다. 비용 비율이나 반드시 확보해야 할 재현율이 달라지면 선택도 달라질 수 있습니다.
정밀도를 우선할 상황이라면 ‘양성으로 판정한 결과를 얼마나 믿을 수 있는가’를 봅니다. 재현율을 우선한다면 ‘실제 양성을 얼마나 놓치지 않았는가’를 봅니다. 어느 한쪽을 높인 뒤 다른 오류를 무시하는 대신, 허용 가능한 FP·FN과 지표를 함께 적는 편이 판단을 분명하게 만듭니다.
모델의 임계값을 실제로 정할 때는 검증 데이터에서 기준을 선택하고, 최종 테스트 데이터는 선택한 기준의 평가에 남겨 둡니다. 이 글의 두 혼동행렬만으로 운영 임계값이나 최적 모델이 결정되는 것은 아닙니다.
핵심 요약
정밀도의 분모는 예측 양성, 재현율의 분모는 실제 양성입니다. 양성 클래스와 표의 방향을 먼저 고정하세요.
F1은 조화평균이며 개수식 2TP / (2TP + FP + FN)으로 다시 검산할 수 있습니다. 분모가 0인 상황은 별도로 다룹니다.
지표 순위와 오류 비용 순위는 다를 수 있습니다. 같은 데이터에서 FP·FN과 판단 목적까지 함께 비교해야 합니다.
정밀도·재현율·F1의 계산을 마쳤다면, 빅데이터분석기사 필기 1~4과목 핵심 개념 목차에서 분석 모형 평가와 교차 검증 등 관련 개념을 이어서 복습할 수 있습니다.
'자격증 > 빅데이터 분석 기사' 카테고리의 다른 글
| 빅데이터분석기사 분산 계산 실습: NumPy와 pandas의 ddof 맞추기 (1) | 2026.10.02 |
|---|---|
| 빅데이터분석기사 전처리 누수 실습: 평균 대체와 Pipeline 적용 순서 (0) | 2026.10.01 |
| 빅분기 실기 연습 모음집: 1·2·3유형 문제와 CSV·노트북 (0) | 2026.09.15 |
| 빅분기 실기 작업형 3유형 연습문제 8제: CSV와 주피터 노트북 (0) | 2026.09.15 |
| 빅분기 실기 작업형 2유형 연습문제 5제: CSV와 주피터 노트북 (1) | 2026.09.11 |
댓글