LLM의 성능을 평가하는데 사용하는 지표
Confusion Matrix
- 예측 (Positive Negative)
- 예측결과 (True False)
| 실제 / 예측 | 예측 긍정 | 예측 부정 |
| 실제 긍정 | TP (True Positive) | FN (False Negative) |
| 실제 부정 | FP (False Positive) | TN (True Negative) |
- Accuracy (정확도) : 모델이 전체 예측 중 몇 %를 맞췄나?
- Precision (정밀도) : 예측한 것 중, 실제로 맞은 비중은 몇 % 인가? 전체 예측중 맞은거
- Recall (재현율) : 실제 맞아야 할 것 중, 예측한 비중은 몇 %인가?
| 개념 | 값의 범위 | 값이 높을수록? | 계산식 | ex |
| Precision 정밀도 | 0~1 | 모델이 “맞다”라고 한 것 중 실제로 맞은 비율이 크다 → 거짓 경보(FP) 가 적다 | TP / (TP + FP) | Precision이 높다 = 맞다! 라고 한 예측이 신뢰할만 하다 |
| Recall 재현율 | 0~1 | 실제로 맞아야 할 것을 모델이 얼마나 놓치지 않았는지 보여준다 → 누락(FN) 이 적다 | TP / (TP + FN) | Recall이 높다 = 실제 맞은걸 거의 빠짐없이 잡아냈다 |
F1 Score
: 정밀도(Precision)와 재현율(Recall)의 균형을 알 수 있는 지표
| 항목 | 내용 |
| 정의 | F1 = 2 × (Precision × Recall) ÷ (Precision + Recall) |
| 범위 | 0 (최악) ~ 1 (최상) |
| 본질 | 두 지표(precision & recall) 의 조화 평균→ 둘 중 하나라도 낮으면 F1이 크게 떨어짐 |
| 주요 용도 | • 클래스 불균형 상황에서 모델의 실제 효용을 평가 • “과분류(FP) vs 누락(FN)” 사이 밸런스 확인 |
| 대표 적용 | 스팸·VOC 분류, 의료·품질검사 등 오류 하나도 민감한 영역 |
왜 조화평균을 사용하나?
: Precision과 Recall 이 모두 높아야 올라가는 평균
: 하나만 높아도 수치가 올라가는 산술평균의 한계를 극복
ex.
- Precision 0.9 Recall 0.9 = F1은 2*0.9*0.9 / (0.9+0.9) = 0.9
- Precision 0.2 Recall 0.9 = F1은 2*0.2*0.9 / (0.2+0.9) = 약 0.32
- Precision 0.9 Recall 0.2 = F1은 2*0.9*0.2 / (0.9+0.2) = 약 0.32
- Precision 0.2 Recall 0.2 = F1은 2*0.2*0.2 / (0.2+0.2) = 약 0.2
Macro F1 vs Micro F1
: 다중분류일 때 Macro / Micro 구분함
- Macro F1 : 데이터셋에 클래스 불균형이 심하지 않고, 모든 클래스를 동등하게 중요하게 평가하고 싶을 때
- Micro F1 : 데이터셋에 클래스 불균형이 심하고, 전체적인 예측 정확도(샘플 수에 비례하여)를 중요하게 보고 싶을 때
| Macro F1 | Micro F1 |
| "라벨별로 고르게 잘 맞히나?" | "전체를 통틀어 정확하냐?" |
| 균형, 형평성을 평가 | 총체적 퍼포먼스를 평가 |
| 0.9 이상이면 모든 라벨이 고르게 우수 0.8 이상일때 운영에 사용 0.7 균형부족, 소수라벨 Recall, Precision 개선 필요 0.5 특정 라벨 문제있음 0.5 미만 실패 |
0.9 이상이면 모든 라벨이 고르게 우수 0.8 이상일때 운영에 사용 0.7 보통 수준이나, 개선여지 큼 0.5 샘플기준 절반 가까지 오담, 운영어려움 0.5 미만 실패 |
ex
| 실제 / 예측 | 예측 - 빨강이라 함 | 예측 -초록이라 함 |
| 실제 -빨강 90 | 85 (TP) | 5 (FN) |
| 실제 -초록 10 | 3 (FP) | 7 (TN) |
Macro F1 구하기
- 빨강이라고 예측
- Precision = 85 / (85 + 3) = 0.97
- Recall = 85 / (85 + 5) = 0.94
- F1 = (2 * 0.97 * 0.94) / (0.97 + 0.94) = 0.95
- 초록이라고 예측
- Precision = 7 / (5 + 7) = 0.58
- Recall = 7 / (3 + 7) = 0.7
- F1 = (2 * 0.58 * 0.7) / (0.58 + 0.7) = 0.64
- Macro F1 = (0.95 + 0.64)/2 = 0.8
- 두 색을 동등하게 보고 단순 평균
Micro F1 구하기
- 통으로 보기
- Precision = (85 + 7) / {(85 + 3) + (5 + 7)} = 0.92
- Recall = (85 + 7) / {(85 + 5) + (3 + 7)} = 0.92
- Macro F1 = (2 * 0.92 * 0.92) / (0.92 + 0.92) = 0.92
Hamming Loss
- 다중 라벨(Multi-Label) 분류에서, 정답·예측 라벨 벡터가 얼마나 다른가를 0 ~ 1 사이 값으로 측정하는 오류율 지표
- "한 샘플당 평균 몇개의 라벨을 잘못 예측했나?"
- 0 ~ 1 사이 값 (0이 이상적)
- 높을수록 안좋음 (틀림)
- ex. 정답 [a, b, c] 예측 [f, b, k] 3개의 예측 중, 2개가 틀림 = 2/3 = 0.67
- Hamming Loss = (전체 틀린 칸 수) / (N + L)
- ex.
- Hamming Loss = (전체 틀린 칸 수) / (N + L) = 4 / (2 * 4) = 0.5
| N / L | A | B | C | D |
| 정답 #1 | O | X | O | X |
| 예측 #1 | O | X | X | O |
| 정답 #2 | X | O | X | O |
| 예측 #2 | O | X | X | O |
Jaccard Index
- 정답 라벨 집합과 예측 라벨 집합이 얼마나 겹치는지(유사도)를 0 ~ 1 사이 값으로 나타내는 지표
- "서로 얼마나 겹쳤나?"
- 0 ~ 1 사이 값 (1이 이상적)
- 낮을수록 안좋음
- ex. 정답 [a, b, c] 예측 [f, b, k] 일떄, 교집합 [b] 합집합 [a, b, c, f, k] = 1/5 = 0.2
'Study > AI' 카테고리의 다른 글
| [용어] temperature, top_p (0) | 2025.10.23 |
|---|