F1 점수란? AI 모델 성능을 한 숫자로 비교하는 방법
TL;DR
F1 점수는 AI 분류 모델의 정밀도와 재현율을 함께 반영해 성능을 보는 지표입니다. 스팸을 잘못 차단하는 일과 스팸을 놓치는 일을 모두 줄이고 싶을 때 유용합니다. 다만 F1 점수 하나만 높다고 해서 모든 상황에서 좋은 모델이라는 뜻은 아니므로, 어떤 오류가 더 큰 피해를 만드는지도 함께 정해야 합니다.
핵심 3줄 요약
- 핵심 1
F1 점수는 정밀도와 재현율의 조화평균입니다. 둘 중 하나만 높고 다른 하나가 낮으면 점수가 크게 올라가지 않습니다. - 핵심 2
양성 사례를 찾아내는 분류 문제에 특히 자주 쓰입니다. 스팸 탐지, 부정 거래 감지, 고객 문의 분류처럼 놓침과 오탐을 함께 살펴야 하는 업무가 대표적입니다. - 핵심 3
정확도와는 다른 질문에 답합니다. 데이터가 한쪽으로 치우쳤거나 오류의 비용이 다르면 정확도만으로는 모델 품질을 오해할 수 있습니다.
이 글에서 다룰 내용
- F1 점수의 한 문장 정의와 계산 원리
- 정밀도·재현율·정확도와 무엇이 다른지
- AI 분류 모델에서 F1 점수를 읽는 쉬운 예시
- F1 점수를 쓸 때 반드시 함께 확인할 주의점
F1 점수의 한 문장 정의는 무엇인가요?
F1 점수는 AI 분류 모델의 정밀도와 재현율을 조화평균으로 합쳐, 두 기준이 얼마나 균형을 이루는지 보여 주는 성능 지표입니다.
정밀도는 모델이 "맞다"고 고른 사례 중 실제로 맞은 비율입니다. 재현율은 실제로 찾아야 하는 사례 중 모델이 찾아낸 비율입니다. F1 점수는 이 둘을 단순히 평균내지 않고, 한쪽이 낮을 때 그 약점을 더 크게 반영합니다. 점수 범위는 일반적으로 0부터 1까지이며 1에 가까울수록 두 지표가 함께 높다는 뜻입니다.
Google의 머신러닝 교육 자료는 F1을 정밀도와 재현율의 조화평균으로 설명합니다. 수식은 F1 = 2 × (정밀도 × 재현율) ÷ (정밀도 + 재현율)이지만, 처음에는 "오탐과 놓침을 한쪽으로만 치우치지 않게 보는 점수"로 이해해도 충분합니다.
한 줄 정리: F1 점수는 "모델이 맞다고 한 결과는 얼마나 믿을 만한가"와 "찾아야 할 대상을 얼마나 놓치지 않았는가"를 함께 보는 숫자입니다.
정밀도·재현율·정확도와는 어떻게 다른가요?
네 지표는 비슷해 보여도 보는 방향이 다릅니다.
- 정밀도(Precision): 모델이 양성이라고 판정한 것 가운데 실제 양성의 비율입니다. 스팸이 아닌 메일을 스팸으로 잘못 보내는 일을 줄이고 싶을 때 중요합니다.
- 재현율(Recall): 실제 양성 가운데 모델이 양성으로 찾아낸 비율입니다. 정말 위험한 거래나 중요한 문의를 놓치지 않는 데 중요합니다.
- 정확도(Accuracy): 전체 판정 가운데 맞은 비율입니다. 데이터가 비교적 고르게 섞여 있고 오류의 비용이 비슷할 때 이해하기 쉽습니다.
- F1 점수: 정밀도와 재현율을 함께 반영한 점수입니다. 한쪽만 좋아 보이는 모델을 걸러내는 데 도움이 됩니다.
예를 들어 메일 1,000통 중 실제 스팸이 20통뿐이라고 가정해 보겠습니다. 모든 메일을 "정상"이라고만 답해도 정확도는 98%가 됩니다. 하지만 스팸은 한 통도 잡지 못했으므로 재현율은 0입니다. 이처럼 대상이 드문 문제에서는 정확도 하나만으로 모델이 유용한지 판단하기 어렵습니다.
핵심 인사이트: 정확도는 전체 시험의 정답률에 가깝고, F1 점수는 "찾아야 할 대상을 제대로 찾으면서 불필요한 오탐도 줄였는가"에 더 가깝습니다.
쉬운 예시로 F1 점수를 이해해 볼까요?
쇼핑몰이 고객 문의 중 "환불이 급한 문의"를 자동으로 표시하는 AI 분류기를 만든다고 가정해 보겠습니다.
모델 A는 급한 문의라고 표시한 10건 중 9건이 실제로 급했습니다. 정밀도는 높습니다. 하지만 실제 급한 문의 30건 중 9건만 찾아냈다면 재현율은 낮습니다. 모델 A만 쓰면 많은 긴급 문의가 일반 문의함에 남을 수 있습니다.
모델 B는 실제 급한 문의 30건 중 27건을 찾아냈습니다. 재현율은 높습니다. 그러나 급하지 않은 문의까지 대량으로 급하다고 표시하면 담당자가 불필요한 알림을 많이 받습니다. 정밀도가 낮아집니다.
F1 점수는 이런 두 상황을 한 숫자로 비교하는 데 도움을 줍니다. 단, 실제 운영에서는 F1 점수가 더 높은 모델을 무조건 고르기보다 "긴급 문의를 놓치는 비용"과 "잘못된 알림을 확인하는 비용"을 먼저 정해야 합니다.
예시: 사기 거래 탐지에서는 놓친 사기 거래의 피해가 매우 크므로 재현율을 더 우선할 수 있습니다. 반대로 무고한 사용자의 계정을 자동 정지하는 업무라면 정밀도를 더 엄격하게 봐야 합니다.
F1 점수는 AI에서 언제 쓰이나요?
F1 점수는 결과를 몇 개의 범주로 나누는 분류 모델의 평가에 널리 쓰입니다. 전통적인 머신러닝 모델뿐 아니라, 생성형 AI의 결과를 후속 분류기로 분류하거나 AI 시스템의 라우팅·검토 규칙을 평가할 때도 활용할 수 있습니다.
- 스팸·피싱 메시지 탐지
- 상품 리뷰의 긍정·부정·문의 분류
- 고객 문의의 담당 부서 배정
- 부정 거래나 이상 행위의 1차 탐지
- 문서에서 특정 항목을 찾는 추출 결과의 평가
TensorFlow는 F1Score 측정값을 제공하며, 다중 분류에서는 클래스별 점수를 어떻게 평균낼지 선택할 수 있게 합니다. 그래서 "F1 점수"를 볼 때는 어떤 데이터로 시험했는지, 이진 분류인지 다중 분류인지, 평균 방식을 무엇으로 썼는지도 함께 기록하는 것이 좋습니다.
실전 팁: 모델 결과 보고서에는 F1 점수만 적지 말고 정밀도, 재현율, 테스트 데이터 기간, 판정 기준값도 같이 남기세요. 그래야 다음 버전과 비교할 때 점수가 달라진 이유를 추적할 수 있습니다.
F1 점수의 평균 방식은 왜 확인해야 하나요?
분류할 범주가 둘보다 많으면 F1 점수는 여러 방식으로 평균낼 수 있습니다. 이름만 같아도 해석이 달라질 수 있으므로 대시보드나 보고서에 평균 방식을 적는 편이 안전합니다.
- 이진 F1: 찾으려는 한 범주를 양성으로 정해 계산합니다. 예를 들어 "스팸" 여부를 보는 경우입니다.
- 매크로 F1(Macro F1): 각 범주의 F1을 같은 비중으로 평균냅니다. 드문 범주도 빠뜨리지 않고 보고 싶을 때 유용합니다.
- 가중 F1(Weighted F1): 각 범주의 데이터 수를 반영해 평균냅니다. 전체 데이터 구성의 영향을 받습니다.
- 마이크로 F1(Micro F1): 모든 분류 결과를 합쳐 계산합니다. 다중 분류에서 전체 판정 단위의 성능을 볼 때 쓰입니다.
어느 방식이 항상 정답인 것은 아닙니다. 예를 들어 희귀하지만 중요한 민원 유형을 놓치지 않는 것이 목적이라면, 많은 일반 문의의 성능에 묻히지 않도록 매크로 F1이나 해당 유형의 재현율을 함께 보는 편이 낫습니다.
F1 점수만 보고 모델을 고르면 안 되는 이유는 무엇인가요?
F1 점수는 유용하지만, 서비스 목표와 오류 비용을 대신 결정해 주지는 않습니다. 기준값을 바꾸면 정밀도와 재현율이 함께 달라지고 F1도 달라질 수 있습니다. 따라서 운영에 쓰기 전에는 사람이 확인한 대표 사례와 실패 사례를 함께 살펴봐야 합니다.
주의: F1 점수는 실제 업무 피해, 법적 의무, 사용자 경험을 모두 숫자 하나로 바꾸지 못합니다. 의료·금융·채용·공공 서비스처럼 영향이 큰 분야에서는 오류 유형별 검토, 사람의 승인, 편향 점검, 실제 운영 환경의 모니터링이 필요합니다.
- 데이터 분포를 확인합니다. 실제 운영 데이터가 테스트 데이터와 크게 다르면 F1 점수가 그대로 재현되지 않을 수 있습니다.
- 범주별 점수를 봅니다. 전체 평균이 좋아도 소수 범주의 성능이 낮을 수 있습니다.
- 판정 기준을 기록합니다. 같은 모델도 양성으로 판단하는 기준을 바꾸면 지표가 달라집니다.
- 정확도와 혼동 행렬도 함께 봅니다. 어떤 오류가 발생하는지 알아야 개선 방향을 정할 수 있습니다.
- 사람 검토 경로를 둡니다. 중요한 결과를 자동으로 확정하기 전에 이의 제기·재검토 절차를 마련합니다.
자주 묻는 질문
F1 점수가 높으면 AI 모델이 정확한가요?
F1 점수가 높으면 정밀도와 재현율의 균형이 좋다는 뜻입니다. 하지만 전체 정확도, 범주별 성능, 테스트 데이터의 대표성, 실제 업무에서 오류가 만드는 피해까지 자동으로 보장하지는 않습니다.
F1 점수는 몇 점이면 좋은가요?
모든 서비스에 통하는 기준은 없습니다. 같은 업무의 이전 모델, 사람이 처리한 기준, 오류 비용과 비교해야 합니다. 예를 들어 위험 탐지에서는 높은 재현율이 더 중요할 수 있고, 자동 차단에서는 높은 정밀도가 더 중요할 수 있습니다.
정확도보다 F1 점수를 항상 써야 하나요?
아닙니다. 범주가 고르게 분포하고 오류 비용이 비슷한 문제라면 정확도도 이해하기 좋은 지표입니다. 다만 양성 사례가 드물거나 정밀도와 재현율을 함께 관리해야 한다면 F1 점수를 추가하는 것이 도움이 됩니다.
챗GPT 같은 생성형 AI에도 F1 점수를 쓸 수 있나요?
답변의 문장 품질 전체를 F1 하나로 평가하기는 어렵습니다. 그러나 답변에서 특정 정보를 추출했는지, 정해진 문의 범주로 제대로 분류했는지처럼 정답 라벨이 있는 부분 과제에는 F1 점수를 활용할 수 있습니다.
F1 점수와 혼동 행렬은 어떤 관계인가요?
혼동 행렬은 실제 범주와 모델 판정이 어떻게 엇갈렸는지 표로 보여 줍니다. 정밀도와 재현율, F1 점수는 이 표의 결과를 바탕으로 계산할 수 있습니다. 원인을 찾을 때는 F1 숫자와 함께 혼동 행렬을 보는 편이 좋습니다.
출처
마무리
F1 점수는 AI 모델을 한 번에 합격·불합격으로 가르는 숫자가 아니라, 정밀도와 재현율 사이의 균형을 확인하는 출발점입니다. 감자나라ai님처럼 AI 기능을 서비스나 자동화에 넣으려는 경우에도, 먼저 어떤 오류를 가장 줄여야 하는지 정하고 그 기준에 맞는 지표와 사람 검토 과정을 함께 설계하는 것이 중요합니다.
