📊 모델 성능 평가 지표 (Evaluation Metrics)
모델을 학습했다고 해서 끝난 것이 아닙니다!
얼마나 잘 학습했는지, 얼마나 정확하게 예측하는지를 정량적으로 평가하는 것이 매우 중요합니다. 이것이 바로 모델 평가 지표입니다.
✅ 정확도 (Accuracy) : 가장 기본적인 평가 지표
📌 예시:
모델이 100개의 메일 중 90개는 일반 메일로, 10개는 스팸이라고 예측했는데,
90개 일반메일 중 80개가 진짜 일반메일리고, 10개 스팸 메일 중 8개가 진짜 스팸이면 정확도는 88%
🔎 주의할 점: 데이터가 불균형할 경우, 정확도는 오히려 오해를 불러올 수 있습니다.
스팸 메일 분류기에서 전체 이메일의 95%가 일반 메일이라면,
무조건 "일반 메일"이라고 예측해도 정확도는 95%입니다.
하지만 진짜 스팸은 하나도 잡아내지 못했죠!
🎯 정밀도 (Precision) : 모델이 "양성(Positive)"이라고 판단한 것 중, 실제로 맞은 비율
- TP (True Positive): 모델이 스팸이라 했고 진짜 스팸
- FP (False Positive): 모델이 스팸이라 했지만 일반 메일
📌 예시:
모델이 10개의 스팸이라고 예측했는데, 그중 9개가 진짜 스팸이면 정밀도는 90%
📌 정밀도가 중요한 상황:
- 카드사기 탐지, 암 진단 알림 등 잘못된 경고(FP)를 피하고 싶을 때
🔍 재현율 (Recall, 민감도) : 실제 양성 중, 모델이 올바르게 찾아낸 비율
-
- TP (True Positive): 모델이 스팸이라 했고 진짜 스팸
- FN (False Negative): 모델이 정상이라 했지만 실제로는 스팸
📌 예시:
실제 스팸 10개 중 모델이 9개를 잡아냈다면 재현율은 90%
📌 재현율이 중요한 상황:
-
- 암 조기 진단, 병원 응급 시스템 등 실제 환자를 놓치면 안 되는 경우
⚖️ F1 점수 (F1 Score) : 정밀도와 재현율의 균형을 잡는 지표
📌 특징:
-
- 정밀도와 재현율이 모두 높아야 F1 점수도 높음
- 한쪽이 낮으면 전체 점수도 낮아짐 → 균형 중요!
📌 언제 유용한가?
-
- 불균형 클래스 문제에서 전체 성능을 하나의 숫자로 보고 싶을 때
- 예: 스팸 분류, 불량품 감지, 질병 예측 등
🧮 혼동 행렬 (Confusion Matrix) : 예측 결과를 표 형태로 정리해 성능을 시각적으로 파악
|
실제 Positive
|
실제 Negative
|
예측 Positive
|
TP (True Positive)
|
FP (False Positive)
|
예측 Negative
|
FN (False Negative)
|
TN (True Negative)
|
📌 이 표를 바탕으로 정밀도, 재현율, 정확도 등 다양한 지표를 계산할 수 있습니다.
📈 ROC-AUC (Receiver Operating Characteristic - Area Under Curve)
모델이 긍정/부정 클래스를 얼마나 잘 구별하는지 나타내는 지표 (0.5이면 랜덤 수준, 1.0이면 완벽한 구분)
-
- 의료, 금융 등에서 중요한 판단 기준
- 다양한 임계값(threshold)에 따른 TPR(재현율)과 FPR(위양성률)을 비교
🧪 예: 암 검출 모델이 AUC 0.98이라면, 거의 완벽하게 암 환자와 정상인을 구분할 수 있다는 뜻입니다.
📌 어떤 지표를 쓸까?
상황
|
우선시할 지표
|
데이터 균형 O
|
정확도
|
불균형 데이터
|
F1 점수
|
거짓 경고가 치명적
|
정밀도
|
놓치는 것이 치명적
|
재현율
|
전체 구분 능력 평가
|
ROC-AUC
|
💡 모델 성능 평가 지표 요약
-
- 정확도는 기본이지만, 상황에 따라 적절한 지표를 골라야 함
- 정밀도/재현율/F1 점수는 특히 불균형 데이터에서 중요
- 혼동행렬과 ROC-AUC는 분석 및 시각화에 유용
🧪 모델 평가 전략: Train-Test Split과 Cross-Validation
모델이 학습을 잘 마쳤다고 해도, 진짜 실력은 처음 보는 데이터를 얼마나 잘 예측하느냐로 평가됩니다.
이때 사용하는 전략이 바로 학습용 데이터와 테스트용 데이터를 나누는 방법, 즉 모델 평가 전략입니다.
📂 1. Train-Test Split (훈련-테스트 분리)
가장 간단한 방법은 데이터를 두 부분으로 나누는 것입니다.
-
- Train Set (훈련 데이터): 모델을 학습시키는 데 사용
- Test Set (테스트 데이터): 학습이 끝난 후, 모델의 성능을 평가하기 위해 사용
🧮 일반적인 분리 비율:
훈련 데이터
|
테스트 데이터
|
80%
|
20%
|
70%
|
30%
|
📉 주의할 점:
-
- 데이터가 작을 경우, 운 좋게 쉬운 데이터만 테스트에 들어갈 수도 있습니다.
- 이럴 땐 평가 결과가 신뢰성 떨어질 수 있음
🔁 2. Cross-Validation (교차 검증)
더 정밀하고 신뢰할 수 있는 평가 방법입니다.
데이터를 여러 번 훈련/테스트로 나누고, 평균 성능을 계산합니다.
🔹 K-Fold Cross-Validation : 데이터를 K개의 부분(폴드)으로 나누고, 각 폴드를 한 번씩 테스트셋으로 사용하며 나머지는 학습용으로 사용합니다.
📌 예: 5-Fold 교차 검증
실행 횟수
|
학습 데이터
|
테스트 데이터
|
1회차
|
Fold 2~5
|
Fold 1
|
2회차
|
Fold 1,3~5
|
Fold 2
|
...
|
...
|
...
|
5회차
|
Fold 1~4
|
Fold 5
|
📈 마지막에 5번의 성능 결과를 평균 내면 보다 신뢰도 높은 평가를 얻을 수 있습니다.

🧠 교차 검증의 장점
-
- 모든 데이터가 한 번씩 테스트셋에 포함됨 → 데이터 낭비 없음
- 한 번 평가로 끝나는 것이 아니라 여러 번 평가 → 더 안정적인 결과
- 특히 데이터가 적을 때 유리함
⏳ 기타 변형 전략
전략 이름
|
설명
|
Stratified K-Fold
|
각 폴드 내 클래스 비율 유지 (불균형 분류에 필수)
|
Leave-One-Out (LOOCV)
|
매번 1개만 테스트셋, 나머지 전부 학습 → 데이터 극소일 때 사용
|
TimeSeriesSplit
|
시간 순서 유지 필요할 때 사용 (예: 주식, 기상 데이터 등)
|
📋 추천 전략 선택 가이드
상황
|
추천 평가 전략
|
데이터 많음, 빠른 평가 필요
|
Train-Test Split
|
데이터 적음, 안정된 평가 필요
|
K-Fold Cross-Validation
|
클래스 불균형 있음
|
Stratified K-Fold
|
시간 순서 의미 있음
|
TimeSeriesSplit
|
매우 작은 데이터
|
Leave-One-Out CV
|
💡 모델 평가 전략 정리
-
- 평가 전략은 모델의 일반화 성능을 정확히 파악하기 위한 핵심 절차
- 단순 분할(Train-Test)과 반복 검증(Cross-Validation) 중 문제 특성에 맞게 선택
- 검증 없이 테스트셋을 자주 사용하면 테스트셋이 더는 '미지의 데이터'가 아님 → 과적합 위험
'인공지능 기본개념 및 용어' 카테고리의 다른 글
3.2.2 머신러닝 모델 학습과 평가 - Part4. 모델 평가 도구 (0) | 2025.05.26 |
---|---|
3.2.2 머신러닝 모델 학습과 평가 - Part2. 모델 학습 (1) | 2025.05.26 |
3.2.2 머신러닝 모델 학습과 평가 - Part1. 개요 (1) | 2025.05.26 |
3.2.1 머신러닝의 네 가지 주요 유형 이해하기 (4) | 2025.05.25 |
최적해와 볼록성 (Optimality and Convexity) (0) | 2025.05.13 |