BERT 뉴스 분류 #10 모델 성능평가 - FPR @ TPR=0.95 #
#2026-03-04
#1
지금까지 본 지표들은 모델의 전반적인 능력을 측정했다. AUROC는 모든 임계값에서의 종합 성적이었고, F1은 특정 결정 규칙에서의 성적이었다. 하지만 실제 서비스를 운영하는 사람이 묻는 질문은 좀 더 구체적이다. “Business 뉴스의 95%를 반드시 잡아내야 한다. 이 조건을 걸면 오탐이 얼마나 생기는가?” 이게 FPR @ TPR=0.95가 답하는 질문이다. TPR(재현율)을 0.95로 고정한 상태에서 FPR(오탐율)이 얼마인지를 본다.
왜 이런 질문이 필요한가? 실제 서비스에서는 재현율의 최소 기준이 정해져 있는 경우가 많기 때문이다. 암 진단 모델을 생각해보자. 실제 암 환자를 놓치면 생명이 위험하다. 그래서 “암 환자의 95% 이상을 반드시 잡아내야 한다"는 요구사항이 먼저 정해진다. 이 조건을 만족시키려면 임계값을 낮춰야 하는데, 임계값을 낮추면 정상인을 암이라고 잘못 판정하는 오탐이 늘어난다. 이 오탐이 얼마나 되는지가 모델의 실용성을 결정한다.
뉴스 분류에서도 같은 논리가 적용된다. “Business 사용자에게 Business 뉴스를 보여주는데, Business 뉴스의 95%는 반드시 전달되어야 한다"라는 서비스 요구사항이 있다면, 그 조건에서 비Business 뉴스가 얼마나 섞여 들어가는지를 알아야 한다.
"재현율을 무조건 95% 이상 확보하되, 오탐은 최소화하라"
→ TPR(재현율)을 0.95로 고정하고 그 때의 FPR(오탐율)을 본다
암 진단 모델: 암인 환자를 95% 이상 잡아야 함 (TPR ≥ 0.95)
→ 이 때 정상인을 암이라고 잘못 판단하는 비율은? (FPR=?)
→ FPR이 낮을수록 좋은 모델
#
#2 ROC 곡선 위의 한 점
이전 단계에서 ROC 곡선을 봤다. 임계값을 바꿔가면서 TPR과 FPR이 어떻게 변하는지를 그린 곡선이었다. AUROC는 이 곡선 아래의 전체 면적, 즉 모든 임계값에서의 종합 성적이었다.
FPR @ TPR=0.95는 이 곡선 위의 특정한 한 점이다. TPR=0.95라는 수평선을 그어서 ROC 곡선과 만나는 지점을 찾고, 그 지점의 FPR 값을 읽는 것이다. AUROC가 곡선 전체의 요약이라면, FPR @ TPR=0.95는 서비스 요구사항에 해당하는 딱 그 지점에서의 성능이다.
ROC 곡선이 왼쪽 상단에 바짝 붙어 있는 모델일수록 TPR=0.95 지점에서의 FPR이 작다. 곡선이 왼쪽 상단에 붙어 있다는 건 아주 낮은 FPR에서도 높은 TPR을 달성한다는 뜻이니까. 그래서 AUROC가 높은 클래스일수록 FPR @ TPR=0.95도 대체로 낮다.
#
#3
| 클래스 | FPR @ TPR=0.95 | 판정 | 해석 |
|---|---|---|---|
| World | 0.0044 | 양호 | 99.56% 특이도 |
| Sports | 0.0046 | 양호 | 99.54% 특이도 |
| Business | 0.0840 | 양호 | 91.60% 특이도 |
| Sci/Tech | 0.0185 | 양호 | 98.15% 특이도 |
World의 FPR이 0.0044다. 이게 뜻하는 바는 이렇다. World 기사의 95%를 잡아내도록 임계값을 설정하면, 비World 기사 1,000건 중 약 4.4건만 World로 잘못 분류된다. 1,000건 중 4건이면 거의 무시해도 될 수준의 오탐이다. Sports도 0.0046으로 거의 같은 수준이다.
Sci/Tech는 0.0185다. 비Sci/Tech 기사 1,000건 중 약 18.5건이 Sci/Tech로 잘못 분류된다. World나 Sports보다는 높지만 여전히 2% 미만이니 양호하다.
Business가 0.0840으로 가장 높다. 비Business 기사 1,000건 중 약 84건이 Business로 잘못 분류된다. 다른 클래스의 10배에서 20배에 달하는 오탐율이다. 이 84건의 대부분이 Sci/Tech 기사일 것이다. 혼동 행렬에서 봤듯이 Business로 잘못 유입되는 건 거의 전부 Sci/Tech이니까.
World 클래스 (FPR=0.0044):
World 기사의 95%를 찾을 때
비-World 기사 1000건 중 약 4.4건만 World로 오탐
→ 매우 선택적, 오탐 거의 없음
Business 클래스 (FPR=0.0840):
Business 기사의 95%를 찾을 때
비-Business 기사 1000건 중 약 84건을 Business로 오탐
→ 다른 클래스에 비해 상대적으로 오탐이 많음
→ Business ↔ Sci/Tech 경계 혼동의 직접적 결과
이 숫자들이 이전 단계들에서 본 모든 분석과 정확히 일치한다는 점이 중요하다. 혼동 행렬에서 Business-Sci/Tech 경계의 오분류가 집중되어 있었고, 클래스별 지표에서 Business의 Precision이 유독 낮았고, AUPRC에서 Business만 AUROC 대비 큰 격차를 보였다. FPR @ TPR=0.95에서도 Business만 유독 오탐이 많다. 모든 지표가 같은 약점을 다른 각도에서 가리키고 있는 것이다.
#
#4 뉴스 분류에서 이 지표의 의미
뉴스 분류에서 FPR 0.084가 허용 가능한지는 서비스의 성격에 달려 있다.
뉴스 추천 시스템에서 Business 피드에 Sci/Tech 기사가 8.4% 섞여 있다면, 사용자 입장에서 크게 불편하지 않을 수 있다. 기술 기업의 투자 소식 같은 건 Business 사용자도 관심을 가질 만한 내용이니까. 뉴스 분류 도메인에서 FPR 0.10 미만이면 실용적으로 충분하다고 보는 기준에 비추면 0.084는 기준 안에 든다. 하지만 보안이나 의료 도메인이었다면 이야기가 완전히 달라진다. 악성 코드 탐지에서 정상 파일의 8.4%를 악성으로 오탐하면 시스템이 마비된다. 암 진단에서 정상인의 8.4%에게 불필요한 추가 검사를 받게 하면 의료 자원이 낭비된다. 이런 도메인에서는 FPR 0.01 미만을 요구하는 경우가 많다. 같은 숫자라도 적용 도메인에 따라 “충분히 좋다"와 “전혀 안 된다"가 갈리는 것이다.
콘텐츠 필터링 시스템에서:
"Business 뉴스만 비즈니스 사용자에게 보여줘라"
→ Recall(TPR)을 95%로 설정: Business 뉴스의 95%를 커버
→ FPR=0.084: 비-Business 뉴스의 8.4%가 혼입
→ 100개 중 8.4개가 잘못 들어감 → 뉴스 추천에서는 허용 가능한 수준
보안 도메인이라면 FPR < 0.01을 요구하지만
뉴스 분류는 FPR < 0.10도 실용적으로 충분하다.
이전 망막증 프로젝트에서 QuadWeightedKappa를 핵심 지표로 쓴 이유도 같은 맥락이다. 의료 도메인에서는 “얼마나 심각한 오류인가"가 중요해서 등급 간 거리에 가중치를 주는 지표를 택했다. 뉴스 분류에서는 “특정 재현율에서 오탐이 허용 범위인가"가 중요해서 FPR @ TPR=0.95를 본다. 지표의 선택 자체가 도메인의 요구사항을 반영하는 것이다.
#
#5 정리
모든 클래스에서 FPR@TPR95 < 0.10 기준을 충족한다. Business가 0.0840으로 가장 높지만, 뉴스 분류 기준에서는 양호하다.